Форум программистов, компьютерный форум CyberForum.ru

Функция нахождения суммы - C++

Восстановить пароль Регистрация
 
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 16:46     Функция нахождения суммы #1
Есть программный код на с++, с функцией нахождения суммы s1 и s2. Почему-то сумму s1,s2 не считает, помогите.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h>
#include<conio.h>
void Sum(float*s, float *x,int n); //prototip funkcii sum
void main()
{
int i;
float a[10],b[15];
float s1,s2;
clrscr();
for (i=0;i<10;i++)
{
printf("a[%d]",i);
scanf("%f",&a[i]);
}
printf("****\n");
for (i=0;i<15;i++)
{
printf("b[%d]",i);
scanf("%f",b[i]);
}
printf("*****\n");
Sum(&s1,a,9); //vizov funkcii sum
printf("s1=%7.2f \n",s1);
Sum(&s2,b,14);  //vizov funkcii sum
printf("s2=%7.2f /n",s2);
getch();
}
void Sum(float *s, float *x, int n)
{
int k;
*s=0;
for k=0;k<=n;k++);
*s+=x[k];
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 16:51     Функция нахождения суммы #2
функцию sum надо подправить:
C++
1
2
3
4
5
6
7
void Sum(float *s, float *x, int n)
{
int k;
*s=0;
for (k=0;k<=n;k++)
*s+=x[k];
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.07.2013, 18:04     Функция нахождения суммы #3
C++
1
for (k=0;k<=n;k++)
Вижу, что вызывается с параметром на единицу меньше, чем размер массива, но это как-то не по-людски. Поэтому в коде должно быть строго меньше, а вызываться, передавая размер (а не размер-1) массива. К тому же, надо убрать "магические" константы.
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 18:10  [ТС]     Функция нахождения суммы #4
надо убрать "магические" константы.
А магические это какие, объясни по русски, я новичок в с++, только изучаю
SeerRus
5 / 5 / 1
Регистрация: 26.06.2013
Сообщений: 32
03.07.2013, 18:22     Функция нахождения суммы #5
Цитата Сообщение от urbic Посмотреть сообщение
А магические это какие, объясни по русски, я новичок в с++, только изучаю
Полагаю, он говорит о неких цифрах, которые мистическим образом стоят в системе и взяты неизвестно откуда. Лучше задать их как константы с понятным названием, и при повторном использовании и изменении проблем не будет.
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 18:24  [ТС]     Функция нахождения суммы #6
for поправили, но все равно получается
a[0]2.3
a[1]2.3
a[2]2.3
a[3]2.3
a[4]2.3
****
b[0]2.2
b[1]2.6
b[2]2.6
b[3]2.5
b[4]2.5
*****
s1= 0.00
s2= 2.30
Что не так?Помогите
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 18:25  [ТС]     Функция нахождения суммы #7
вот файл
Вложения
Тип файла: rar F.rar (358 байт, 2 просмотров)
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
03.07.2013, 18:35     Функция нахождения суммы #8
лови
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
#include<conio.h>
void Sum(float &s, float *x, int n)
{
int k;
s=0;
for (k=0;k<=n;k++)
s+=x[k];
}
int main()
{
int i;
float a[10],b[15];
float s1,s2;
for (i=0;i<10;i++)
{
printf("a[%d]",i);
scanf("%f",&a[i]);
}
printf("****\n");
for (i=0;i<15;i++)
{
printf("b[%d]",i);
scanf("%f",&b[i]);
}
printf("*****\n");
Sum(s1,a,9); //vizov funkcii sum
printf("s1=%7.2f \n",s1);
Sum(s2,b,14);  //vizov funkcii sum
printf("s2=%7.2f \n",s2);
getch();
}
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 18:41  [ТС]     Функция нахождения суммы #9
лови
выдает ошибку
Миниатюры
Функция нахождения суммы  
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
03.07.2013, 18:53     Функция нахождения суммы #10
ёмаё, почему у меня тогда всё посчитало, щяс гляну

Добавлено через 3 минуты
это всё компилятор чудит. скачай бесплатный codeblocks с mingw и изучай спокойно с++.
Я отвечаю, я запустил тот код, что те скинул, всё посчитало правильно
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 19:21  [ТС]     Функция нахождения суммы #11
это всё компилятор чудит. скачай бесплатный codeblocks с mingw и изучай спокойно с++.
дай ссылку на прогу скачать
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
03.07.2013, 19:36     Функция нахождения суммы #12
http://sourceforge.net/projects/code...p.exe/download
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 19:56     Функция нахождения суммы
Еще ссылки по теме:

Подкорректировать код нахождения суммы ряда C++
C++ Программа нахождения суммы ряда на си
Рекурсивная функция для нахождения n-го члена / суммы n первых членов геометрической прогрессии C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
urbic
130 / 121 / 46
Регистрация: 27.09.2012
Сообщений: 480
03.07.2013, 19:56  [ТС]     Функция нахождения суммы #13
Скачали компилятор по ссылке, запустили прогу. вот что получилось
a[0]2.2
a[1]2.3
a[2]3.2
a[3]3.5
a[4]2.6
****
b[0]3.6
b[1]6.3
b[2]5.2
b[3]21.2
b[4]33.6
*****
s1= 0.00
s2= 2.30

Добавлено через 3 минуты
Ой не тот файл, да все работает спасибо
Yandex
Объявления
03.07.2013, 19:56     Функция нахождения суммы
Ответ Создать тему
Опции темы

Текущее время: 18:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru