Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rich67
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 7
#1

ошибка в коде - C++

09.12.2012, 14:06. Просмотров 320. Ответов 5
Метки нет (Все метки)

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
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int N,i=1,min,max;
int a=1;
int sum=0;
int j=0;
setlocale (LC_ALL, ".1251 ");
cout << "Введите количество элементов массива, отличное от 0: " ;
cin >> N;
/*cout << "Введено 0 элементов массива, программа закрывается" ; */ 
int *p = new int [N];
int *p2 = new int [N];
cout << "Введите элементы массива:\n " ;
for( int i =1; i<=N; i++)
cin >> p[i];
for( int i=1; i<=N; i++) {
if(i%2==0)
a = a*p[i];
}
cout << " Произведение элементов массива с четными номерами равно:" << a << "\n";
for( int i=1; i=N; i++) {
if(p[i]==0)
{
min=i;break;
}
}
for(i=1; i=N; i++) {
if(p[i]==0)
{
max=i;
}
}
for(i=min+1;i<max;i++){
sum=p[i]+sum;
}
cout << " Сумма элементов массива, расположенных между первым и последним нулевыми элементами, равна:" << sum << "\n";
for(i=1;i=N;i++)
if(p[i]>=0){
p2[j]=p[i];
j++;
}
for(i=1;i=N;i++)
if(p[i]<0)
{
p2[j]=p[i];
j++;
}
for(int j=1;j=N;j++)
cout <<"\n" <<p2[j]<< " ";
delete[]p;
delete[]p2;
getch();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 14:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ошибка в коде (C++):

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

В чём ошибка.В коде там где коментарий там ошибка поучается. - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

Ошибка в коде - C++
Дали на пару такую программу, не могу разобраться в чем ошибка. Сначала ругалась на то, что не видит графическую библиотеку &lt;graphics.h&gt;....

Ошибка в коде - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; #define N 3 #define M 3 using namespace std; int main() { int...

Ошибка в коде - C++
Почему программа не открывает указанный файл? Кто знает, помогите! #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; ...

ОШибка в коде. - C++
#include &lt;iostream&gt; using namespace std; int main() { double sum=1.0; double term=0; double eps; int power=1; ...

5
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
09.12.2012, 14:14 #2
оформляйте код в теги [CPP ][ /CPP].
Что за ошибка, в какой строке?
0
rich67
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 7
09.12.2012, 14:16  [ТС] #3
сумма эл-тов массива между первым и последним нулевыми эл-тами. не могу задать даже.я не опытный.
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
09.12.2012, 14:17 #4
массивы индексируются, начиная с 0, а не с единицы
0
rich67
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 7
09.12.2012, 14:18  [ТС] #5
у меня условие с 1 начиная. если я запишу
C++
1
(i=1; i<=N; i++)
будет ли распознаваться нулевой эл-т массива.или нулевым станет 1??
0
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
09.12.2012, 15:50 #6
Тогда нулевой элемент останется неинициализирован. Выведите на экран его значение, и посмотрите, что там
C++
1
cout<<p[0]<<endl;
Попробуйте вот так:

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
 using namespace std;
 
 int main()
 {
     int N, min, max;
     int a=1;
     int sum=0;
     int j=0;
 
     int i;     //переменная цикла
 
     setlocale (LC_ALL, ".1251 ");  //русский язык
 
     cout << "Введите количество элементов массива, отличное от 0: " ;
     cin >> N;
 
     if(N<=0)   //если число элементов  меньше или равно 0
     {
         cout << "Введено 0 элементов массива, программа закрывается"<<endl; 
         exit(0);   //завершаем программу
     }
    
     int *p = new int [N];  //выделяем память под массив
 
     cout << "Введите элементы массива: ";
 
     for(i=0; i<N; ++i)
         cin >> p[i];
 
     cout<<"Введенный массив:  ";
     for(i=0; i<N; ++i)
     {
        cout<<p[i]<<" ";        //выводим массив
 
        if(i%2==0)              //заодно, если индекс массива четный, считаем произведение
            a*=p[i];
     }
 
     cout<<endl;
 
     cout << "Произведение элементов массива с четными индексами равно: " << a << "\n";
 
     bool null_1=false, null_2=false;       //полагаем, что нулевых символов нет
 
     for(i=0; i<N; ++i)     //ищем с начала массива первый ноль
     {
         if(p[i]==0)    //если есть
         {
             null_1=true;   //значит, первый нулевой символ есть
             min=i;         //запоминаем его индекс
             break;
         }
     }
 
    if(null_1)          //если найден первый ноль, ищем последний(начиная с конца)
    {
         for(i=N-1; i>min; --i) 
         {
             if(p[i]==0)        //если ноль найден
             {
                null_2=true;    //ставим, что найден
                max=i;          //запоминаем его индекс
                break;
             }
         }
 
 
             if(null_2) //если последний ноль найден
             {
                 if((max-min)>1)    //и если между первым нулем и последним нулем есть хотя бы один элемент
                    {
                         for(i=min;i<=max;++i)  //считаем сумму
                             sum+=p[i];
     
                         cout << "Сумма элементов массива, расположенных между первым и последним нулевыми элементами, равна:" << sum << "\n";
                    }
                 else
                     cout<<"Между первым и последним нулевым элементом элементов нет"<<endl;
             }
             else
                 cout<<"В массиве только один нулевой элемент!!"<<endl;
 
    }
    else
        cout<<"Нулевой элемент не найден!!"<<endl;
 
     delete [] p;   //очищаем выделенную память
 
 return 0;
 }
Кстати, зачем нужен был массив
C++
1
int *p2 = new int [N];
0
09.12.2012, 15:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2012, 15:50
Привет! Вот еще темы с ответами:

Ошибка в коде - C++
4 программы по отдельности все запускаются, а после объединения в одну - выдает следующие ошибки: 1&gt;cpp(23): warning C4838:...

Ошибка в коде - C++
Всем привет! Пишу программу на языке с++ . Надо найти общее количество отрицательных элементов в массивах Х, Y, Z. Вот что я...

ошибка в коде ? - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; using namespace std; int main(){ const int Size=30; char...

Ошибка в коде - C++
Друзья, помогите. Почему программа не открывает указанный файл? Вчём может быть ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.