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

В чем ошибка? - C++

Восстановить пароль Регистрация
 
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 23:44     В чем ошибка? #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
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
const int N=10;
int min,max,i,k=0,s=0;
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=i+2)
{k=massiv[i]+k;}
cout<<"\n Sum="<<k<<'\n';
 
for(i=0;i<N;i++)
{
if(massiv[i]<0)
{
min=i;break;
}
}
for(i=0;i<N;i++)
{
if(massiv[i]<0)
{max=i;
}
}
for(i=min+1;i<max;i++)
{
s=massiv[i]+s;
cout<<"Summa="<<s;
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2014, 23:44     В чем ошибка?
Посмотрите здесь:

C++ В чем ошибка
C++ в чем ошибка?
в чем ошибка? C++
В чем ошибка? C++
C++ в чем ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,776
13.01.2014, 23:48     В чем ошибка? #2
таня2, забыли закрыть main() фигурной скобкой
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
13.01.2014, 23:51     В чем ошибка? #3
таня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
40
41
42
43
44
#include"stdafx.h"
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    const int N = 10;
    int min, max, i, k = 0, s = 0;
    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 ((i+1)%2==0)
            k = massiv[i] + k;
    }
    cout << "\n Sum=" << k << '\n';
 
    for (i = 0; i < N; i++)
    {
        if (massiv[i] < 0)
        {
            min = i; break;
        }
    }
    for (i = 0; i < N; i++)
    {
        if (massiv[i] < 0)
        {
            max = i;
        }
    }
    for (i = min + 1; i < max; i++)
        s +=massiv[i];
 
        cout << "Summa=" << s;
        system("pause");
        return 0;
    }
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,776
13.01.2014, 23:54     В чем ошибка? #4
Цитата Сообщение от cooller_94 Посмотреть сообщение
И нужно подключить пространство имен
не обязательно. Зависит от компилятора.

Цитата Сообщение от cooller_94 Посмотреть сообщение
Поимо того что забыли скобку закрыть, вы не правильно считаете сумму четных.
и сумму между отрицательными тоже
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
13.01.2014, 23:56  [ТС]     В чем ошибка? #5
а как здесь все это исправить? Помогите пожалуйста!!!!!
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 00:02     В чем ошибка? #6
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
и сумму между отрицательными тоже
Верно, ее не проверял. Просто тут хоть что то выводило, а на четные вообще мусор

Добавлено через 5 минут
Ev_Hyper, Хотя сумма между отрицательными вроде верно
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
14.01.2014, 00:06     В чем ошибка? #7
Цитата Сообщение от таня2 Посмотреть сообщение
for(i=min+1;i<max;i++)
{
s=massiv[i]+s;
cout<<"Summa="<<s;
system("pause");
return 0;
}
вылетит на первой же итерации
по моему нужно так
C++
1
2
3
4
5
6
7
8
for(i=min+1;i<max;i++)
{
s=massiv[i]+s;
}
 
cout<<"Summa="<<s;
system("pause");
return 0;
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 00:06     В чем ошибка? #8
таня2, Вверху рабочая версия
Какой у вас компилятор?
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,776
14.01.2014, 00:07     В чем ошибка? #9
Цитата Сообщение от cooller_94 Посмотреть сообщение
Ev_Hyper, Хотя сумма между отрицательными вроде верно
А если рассматривать вариант, что отр. нет, или одно, то вариант сумма = 0 не совсем правильный.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 00:10     В чем ошибка? #10
таня2,
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
А если рассматривать вариант, что отр. нет, или одно, то вариант сумма = 0 не совсем правильный.
Вот
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
40
41
42
43
44
#include"stdafx.h"
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    const int N = 10;
    int min = -1, max = -1, i, k = 0, s = 0;
    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 ((i+1)%2==0)
            k = massiv[i] + k;
    }
    cout << "\n Sum chetnih=" << k << '\n';
 
    for (i = 0; i < N; i++)
    {
        if (massiv[i] < 0)
            min = i; break;
 
    }
    for (i = 0; i < N; i++)
    {
        if (massiv[i] < 0)
        {
            max = i;
        }
    }
    if (min != -1 && max != -1){
        for (i = min + 1; i < max; i++)
            s += massiv[i];
        cout << "Summa betveen minus=" << s<<endl;
    }
        system("pause");
        return 0;
    }
таня2
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 48
14.01.2014, 00:14  [ТС]     В чем ошибка? #11
Большое спасибо, у меня уже все правильно посчитало)))
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
14.01.2014, 00:16     В чем ошибка? #12
Цитата Сообщение от cooller_94 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (i = 0; i < N; i++)
  {
    if (massiv[i] < 0)
      min = i; break;
  }
  for (i = 0; i < N; i++)
  {
   if (massiv[i] < 0)
   {
    max = i;
     }
   }
а не проще с конца искать?
C++
1
2
3
4
5
6
7
8
for (i = N-1; i>=0; i--)
   {
     if (massiv[i] < 0)
      {
        max = i;
        break;
       }
    }
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 00:17     В чем ошибка? #13
Цитата Сообщение от ValeryS Посмотреть сообщение
а не проще с конца искать?
Проще, но я поправлял ее код до рабочего состояния
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
14.01.2014, 00:20     В чем ошибка? #14
Цитата Сообщение от cooller_94 Посмотреть сообщение
if (min != -1 && max != -1){
вторая проверка лишняя
если min больше 1 то и max будет больше 1
а вот когда они совпадают, в массиве одно отрицательное число, у тебя не предусмотрен
C++
1
if(min<0 && min!=max)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2014, 00:23     В чем ошибка?
Еще ссылки по теме:

C++ В чем ошибка?
C++ В чем ошибка?
C++ В чем ошибка?

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

Или воспользуйтесь поиском по форуму:
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
14.01.2014, 00:23     В чем ошибка? #15
ValeryS, Спасибо, это не учел
Yandex
Объявления
14.01.2014, 00:23     В чем ошибка?
Ответ Создать тему
Опции темы

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