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

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

Войти
Регистрация
Восстановить пароль
 
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
#1

Одномерный массив - C++

26.10.2012, 22:20. Просмотров 433. Ответов 14
Метки нет (Все метки)

Товарищи программеры подскажите, где косяк, желательно с кратким пояснением, токо начал изучать, хочу разобраться.

Программа компилируется но с ошибками и сумму считается неправильно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
           int x[100],n,i,sum;
    cout<<"Enter N: "<<n<<endl;
    cin>>n;
    for (i=1;i<=n;i++)
    {
        cout<<"Enter elem: ";
        cin>>x[i];
    }
    for (i=1; i<=n; i++)
    {
        sum=sum+x[i];
    }
    cout<<"Summa="<<sum<<endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 22:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерный массив (C++):

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include &lt;iostream&gt; using namespace std; ...

14
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
26.10.2012, 22:23 #2
Цитата Сообщение от stimo15 Посмотреть сообщение
Программа компилируется но с ошибками
Оценил шутку.
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
26.10.2012, 22:26 #3
Цитата Сообщение от stimo15 Посмотреть сообщение
for (i=1;i<=n;i++)
массивы начинаются с 0 и заканчиваются n-1
посему
Цитата Сообщение от stimo15 Посмотреть сообщение
for (i=1; i<=n; i++)
{
sum=sum+x[i];
}
превращается в
C++
1
2
3
4
for (i=0; i<n; i++)
    {
        sum=sum+x[i];
    }
первый цикл тоже поправь
и в начале (перед циклом)обнули сумму там мусор
C++
1
sum=0;
1
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
26.10.2012, 22:35  [ТС] #4
Цитата Сообщение от Vourhey Посмотреть сообщение
Оценил шутку.
с таким же успехом можешь удалить свой пост!

Добавлено через 8 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
массивы начинаются с 0 и заканчиваются n-1
посему

превращается в
C++
1
2
3
4
for (i=0; i<n; i++)
    {
        sum=sum+x[i];
    }
первый цикл тоже поправь
и в начале (перед циклом)обнули сумму там мусор
C++
1
sum=0;
все седал как ты сказал, теперь код выглядит так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
           int x[100],n,i,sum;
           cout<<"Enter N: "<<n<<endl;
    cin>>n;
    for (i=0;i<n;i++)
    {
        cout<<"Enter elem: ";
        cin>>x[i];
    }
    sum=0;
    for (i=0; i<n; i++)
    {
        sum=sum+x[i];
    }
    cout<<"Summa="<<sum<<endl;
    system("pause");
    return 0;
}
но почему то продалжает ругаться, пишет переменная n неинициализированная локальная переменная.

И когда программа запускается переменной n присвоено огромное отрицательно число. что такое?
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.10.2012, 22:37 #5
Цитата Сообщение от stimo15 Посмотреть сообщение
cout<<"Enter N: "<<n<<endl;
cin>>n;
вы ее выводите на печать ДО того, как вносите туда значение с клавиатуры.
C++
1
2
cout<<"Enter N: "<<endl;
cin>>n;
1
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
26.10.2012, 22:38 #6
Цитата Сообщение от stimo15 Посмотреть сообщение
И когда программа запускается переменной n присвоено огромное отрицательно число. что такое?
это и есть мусор потому что
Цитата Сообщение от stimo15 Посмотреть сообщение
переменная n неинициализированная
1
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
26.10.2012, 22:49  [ТС] #7
Цитата Сообщение от ValeryS Посмотреть сообщение
это и есть мусор потому что
Спасибо! С этим разобрался. Теперь я маленько изменил код. С переменной j творится такая же ересь. Что не так?

C++
1
2
3
4
5
6
7
8
for (i=0; i<n; i++)
    {
        if (x[i]=0)
        {
            j=i;
            break;
        }
    }
0
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,646
Записей в блоге: 3
Завершенные тесты: 1
26.10.2012, 22:52 #8
C++
1
if (x[i]=0)
это присваивание.
1
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
26.10.2012, 22:53 #9
Цитата Сообщение от stimo15 Посмотреть сообщение
С переменной j творится такая же ересь. Что не так?
то же самое пока не дойдет до
Цитата Сообщение от stimo15 Посмотреть сообщение
j=i;
там будет лежать мусор
а если совсем не дойдет (нет нулевых элементов в массиве) то так и останется
посему инициализируй её числом которое явно ей не присвоится (например -1)( до цикла)
0
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
26.10.2012, 22:56  [ТС] #10
не получается, на экран выводиться -1, которую ей присвоили до цикла, хотя в массиве нулевые элементы есть.
C++
1
2
3
4
5
6
7
8
9
10
j=-1;
    for (i=0; i<n; i++)
    {
        if (x[i]=0)
        {
            j=i;
            break;
            /*sum=sum+x[i];*/
        }
    }
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
26.10.2012, 22:56 #11
ну и как сказал Croessmah,
это присваивание
сравнение вот
C++
1
if (x[i]==0)
и в твоей записи
Цитата Сообщение от stimo15 Посмотреть сообщение
C++
1
2
3
4
5
if (x[i]=0)
 {
 j=i;
 break;
 }
if никогда не выполнится поскольку в условии 0 (ложь)
0
Croessmah
26.10.2012, 22:56
  #12

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
а если совсем не дойдет (нет нулевых элементов в массиве) то так и останется
C++
1
if (x[i]=0)
Спорим, никогда не дойдет =)

0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
26.10.2012, 22:57 #13
правильнее
C++
1
if (x[i]==0)
1
ValeryS
26.10.2012, 22:57
  #14

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Спорим, никогда не дойдет =)
да заметил я правда после тебя

0
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
26.10.2012, 22:59  [ТС] #15
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
if (x[i]=0)
это присваивание.
все разобрался, спасибо всем кто помог!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 22:59
Привет! Вот еще темы с ответами:

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массив - C++
Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массива;

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически - C++
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
26.10.2012, 22:59
Ответ Создать тему
Опции темы

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