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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ В динамическом массиве, состоящем из п целых элементов, вычислить: http://www.cyberforum.ru/cpp-beginners/thread724665.html
- произведение элементов массива с четными номерами; - сумму элементов массива, расположенных между первым и последним нулевыми элементами. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все остальные. Порядок следования положительных элементов не изменять
C++ Найти и записать в выходной файл все симметричные слова В произвольном тексте входного файла, содержащем не более 10 строк, в каждой строке не более 80 символов, найти и записать в выходной файл все симметричные слова. Примечание : слова из одной буквы являются симметричными. #include <stdio.h> #include <locale.h> #include <conio.h> #include <iostream> using std::cout; using std::cin; #include <string.h> http://www.cyberforum.ru/cpp-beginners/thread724657.html
Обработка "длинных" текстов (создать новый список, записывая в каждый блок по одному предложению.) C++
Здравствуйте, помогите пожалуйста с заданием. Текст из текстового файла после загрузки представляется линейным односвязным списком, причем каждый блок списка содержит один сегмент текста, не имеющий ограничений на количество символов. Отдельные слова отделяются пропусками ' '(одним или больше), знаками пунктуации "," и ".". Нужно создать новый список, записывая в каждый блок по одному...
Не выполняется функция после ее вызова C++
Итак, имею код программы, выполняющей проверку двумерного массива на симметричность относительно главной диагонали: #include "stdafx.h" #include <math.h> #include <time.h> #include <stdlib.h> #include "conio.h" #include <clocale> int printmenu(); void setarray(int n, int m, int **a);
C++ Оформить с помощью оператора условие? http://www.cyberforum.ru/cpp-beginners/thread724604.html
Как оформить прогу с помощью оператора условие? #pragma argsused int main(int argc, char* argv) { double x,y ; cout << "Vvedite x"; cin >> x; cout << "VVedite y"; cin >> y ; if((y>=0 && x>=0 && x*x+y*y<=36) || (y<0 && x>=0 && x-y<=6))
C++ Функция, возвращающая ссылку Помогите исправить функцию, которая возвращает ссылку на массив size_t Crd() { size_t crd; return &crd; } подробнее

Показать сообщение отдельно
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
09.12.2012, 15:50     ошибка в коде
Тогда нулевой элемент останется неинициализирован. Выведите на экран его значение, и посмотрите, что там
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];
 
Текущее время: 22:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru