Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Мусор в массиве


Автор: angangell 4.11.2014, 12:55
Доброе время суток!

Разработать программу, которая создает список L, элементами которого являются целые числа X1, X2 ... Xn.Находит в списке L и печатает длинную цепочку цифр что удовлетворяет условие: Xi<Xi+1<Xi+2<...

Вместо чисел - выводит мусор.

Код

#include <iostream>
using namespace std;
 
int main(){
    setlocale (0,"");
    int size=10;
   // cout<<"Введіть розмір массива : ";
   // cin>>size;
    int L[size],A[size],k=0;
    
    srand(time(0));
    cout<<"Числа в масиві : "<<endl;
    for(int i=0;i<size;i++){
          L[i]=1+rand()%10;
          cout<<L[i]<<",";
          
        if(L[i]<L[i+1]){                 
            A[k++]=L[i];
            A[k++]=L[i+1];
           A[k++]=L[i+2];
        }
    }
    cout<<"\n\n\n\n";
    for(int i=0;i<k;i++){
            cout<<A[i]<<",";
            }    
    
    cout<<endl;
    system("pause");
    }

Автор: Vasya 4.11.2014, 21:35
Цитата(angangell @ 4.11.2014,  12:55)
Код

        if(L[i]<L[i+1]){                 

При I=9 получится обращение к элементу за пределами массива, поскольку L[10] не существует. Да и L[i+1] получает значение в следующем шаге for, поэтому это сравнение с чем папало. Хотя это не имеет отношения к вопросу. А что вы считаете мусором? У меня выводит какие-то циферки  smile 

Автор: angangell 4.11.2014, 22:19
Понятно)
Как довести до ума данный код ?)

Автор: Vasya 4.11.2014, 23:00
Для начала надо инициализацию массива отделить от поиска чисел. Т е в отдельном цикле инициализируем, а уж потом ищем что нужно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)