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

Подскажите, где ошибка? - C++

Восстановить пароль Регистрация
 
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:08     Подскажите, где ошибка? #1
Задача такая: В одномерном массиве, вводимом с клавиатуры, вычислить
1) кол-во отрицательных элементов массива
2)сумму модулей элементов массива, расположенных после минимального по модулю элемента

Выдает ошибку в строке со скобкой, которая находится после строки
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
35
36
37
38
39
if(fabs(massiv[i]<j)
 
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
cout<<"Vvedite 10 celyh chisel\n";
for(i=0;i<N;i++)
cin>>massiv[i];
for(i=0;i<N;i++)
cout<<"\n massiv["<<i<<"]="<<massiv[i];
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
k++;
}
cout<<"\n Kol otric="<<k<<'\n';
 
j=fabs(massiv[0]);
 
for(i=0;i<N;i++)
{
if(fabs(massiv[i]<j)
{
j=massiv[i];
x=i+1;}
}
for(i=x;i<N;i++)
s+=massiv[i];
cout<<"Summa="<<s;
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
genock94
 Аватар для genock94
19 / 19 / 1
Регистрация: 16.11.2012
Сообщений: 348
13.01.2014, 22:11     Подскажите, где ошибка? #2
таня2, не хватает одной закрывающей скобки
Цитата Сообщение от таня2 Посмотреть сообщение
if(fabs(massiv[i]<j))
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:12     Подскажите, где ошибка? #3
забыли закрыть скобку:
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
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
cout<<"Vvedite 10 celyh chisel\n";
for(i=0;i<N;i++)
cin>>massiv[i];
for(i=0;i<N;i++)
cout<<"\n massiv["<<i<<"]="<<massiv[i];
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
k++;
}
cout<<"\n Kol otric="<<k<<'\n';
 
j=fabs(massiv[0]);
 
for(i=0;i<N;i++)
{
if(fabs(massiv[i])<j)
{
j=massiv[i];
x=i+1;}
}
for(i=x;i<N;i++)
s+=massiv[i];
cout<<"Summa="<<s;
system("pause");
return 0;
}
На правильность программу не проверял
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:22  [ТС]     Подскажите, где ошибка? #4
кол-во отрицательных элементов считает, а вот вторую часть задания, т.е. сумму модулей элементов массива, расположенных после минимального по модулю элемента, правильно считать не хочет. А просто ищет минимальный по модулю элемент и считает после него просто сумму. Как правильно сделать?
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:25     Подскажите, где ошибка? #5
таня2, сейчас вы считаете не модуль, а обычную сумму

Добавлено через 1 минуту
C++
1
s+=fabs(massiv[i]);
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:26  [ТС]     Подскажите, где ошибка? #6
А что мне нужно сделать, чтобы выполнить задание? как правильно изменить программу?
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,911
13.01.2014, 22:27     Подскажите, где ошибка? #7
Цитата Сообщение от таня2 Посмотреть сообщение
А что мне нужно сделать, чтобы выполнить задание? как правильно изменить программу?
Вам написали в сообщении выше,или я вас не так понял?
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:31     Подскажите, где ошибка? #8
таня2,
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
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
cout<<"Vvedite 10 celyh chisel\n";
for(i=0;i<N;i++)
cin>>massiv[i];
for(i=0;i<N;i++)
cout<<"\n massiv["<<i<<"]="<<massiv[i];
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
k++;
}
cout<<"\n Kol otric="<<k<<'\n';
 
j=fabs(massiv[0]);
 
for(i=0;i<N;i++)
{
if(fabs(massiv[i])<j)
{
j=massiv[i];
x=i+1;}
}
for(i=x;i<N;i++)
s+=fabs(massiv[i]);
cout<<"Summa="<<s;
system("pause");
return 0;
}
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:33  [ТС]     Подскажите, где ошибка? #9
я исправила, но мне все равно почему-то считает не то, что нужно...
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:35     Подскажите, где ошибка? #10
покажите результат с консоли
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:37  [ТС]     Подскажите, где ошибка? #11
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
35
36
37
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
cout<<"Vvedite 10 celyh chisel\n";
for(i=0;i<N;i++)
cin>>massiv[i];
for(i=0;i<N;i++)
cout<<"\n massiv["<<i<<"]="<<massiv[i];
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
k++;
}
cout<<"\n Kol otric="<<k<<'\n';
 
j=fabs(massiv[0]);
 
for(i=0;i<N;i++)
{
if(fabs(massiv[i])<j)
{
j=massiv[i];
x=i+1;}
}
for(i=x;i<N;i++)
s+=fabs(massiv[i]);
cout<<"Summa="<<s;
system("pause");
return 0;
}
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:39     Подскажите, где ошибка? #12
я имею ввиду, ваш тестовый пример:
Кликните здесь для просмотра всего текста

Vvedite 10 celyh chisel
2
3
45
-6
-7
-8
0
3
5
6

massiv[0]=2
massiv[1]=3
massiv[2]=45
massiv[3]=-6
massiv[4]=-7
massiv[5]=-8
massiv[6]=0
massiv[7]=3
massiv[8]=5
massiv[9]=6
Kol otric=3
Summa=14Для продолжения нажмите любую клавишу . . .

Правой кнопкой в консоли, потом "Enter"
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:43  [ТС]     Подскажите, где ошибка? #13
Что-то у меня не получается вставить...
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:46     Подскажите, где ошибка? #14
Правой кнопкой в консоли->Выделить все -> "Enter" и вставить сюда
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 22:48  [ТС]     Подскажите, где ошибка? #15
Vvedite 10 celyh chisel
9 -2 6 4 -9 10 -1 5 2 8

massiv[0]=9
massiv[1]=-2
massiv[2]=6
massiv[3]=4
massiv[4]=-9
massiv[5]=10
massiv[6]=-1
massiv[7]=5
massiv[8]=2
massiv[9]=8
Kol otric=3
Summa=45Для продолжения нажмите любую клавишу . . .
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 22:55     Подскажите, где ошибка?
Еще ссылки по теме:

Подскажите где ошибка C++
C++ Подскажите где ошибка
Подскажите где ошибка C++

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

Или воспользуйтесь поиском по форуму:
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,773
13.01.2014, 22:55     Подскажите, где ошибка? #16
У вас заносится в мин, не модуль отрицат. числа, а оно само. Поэтому искало первый отрицательный:
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
35
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
cout<<"Vvedite 10 celyh chisel\n";
for(i=0;i<N;i++)
cin>>massiv[i];
for(i=0;i<N;i++)
cout<<"\n massiv["<<i<<"]="<<massiv[i];
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
k++;
}
cout<<"\n Kol otric="<<k<<'\n';
 
j=fabs(massiv[0]);
 
for(i=0;i<N;i++)
{
if(fabs(massiv[i])<j)
{
 
j=fabs(massiv[i]);
x=i+1;
}
}
for(i=x;i<N;i++)
s+=fabs(massiv[i]);
cout<<"Summa="<<s;
system("pause");
return 0;
}
Yandex
Объявления
13.01.2014, 22:55     Подскажите, где ошибка?
Ответ Создать тему
Опции темы

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