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

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

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

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

26.10.2012, 22:20. Просмотров 428. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 22:20     Одномерный массив
Посмотрите здесь:

Одномерный массив - C++
Помогите плиз!!:cry: Дан одномерный массив n целых эл-ов(конкретно=20)...Нужно: 1)Найти произведение эл-ов массива с четными номерами ...

Одномерный массив - C++
Помогите пожалуйста с задачей: В одномерном массиве Х, состоящем из N вещественных элементов, вычислить: a) количество элементов,...

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

Одномерный массив - C++
1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: a) минимальный из положительных элементов, его порядковый...

Одномерный массив - C++
Создать массив из 20 вещественных чисел.Определить, сколько из них больше своих &quot;соседей,&quot; т.е. предыдущего и последующего чисел. ...

Одномерный массив - C++
Разработать алгоритм решения задачи обработки одномерного массива. Реализовать алгоритм на языке С++ двумя способами: 1) с помощью цикла...

Одномерный массив - C++
Написать функцию, которая возвращает среднее арифметическое значение элементов заданного в качестве параметра массива целого типа, а также...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
26.10.2012, 22:23     Одномерный массив #2
Цитата Сообщение от stimo15 Посмотреть сообщение
Программа компилируется но с ошибками
Оценил шутку.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
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;
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 присвоено огромное отрицательно число. что такое?
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;
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
26.10.2012, 22:38     Одномерный массив #6
Цитата Сообщение от stimo15 Посмотреть сообщение
И когда программа запускается переменной n присвоено огромное отрицательно число. что такое?
это и есть мусор потому что
Цитата Сообщение от stimo15 Посмотреть сообщение
переменная n неинициализированная
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;
        }
    }
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
26.10.2012, 22:52     Одномерный массив #8
C++
1
if (x[i]=0)
это присваивание.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
26.10.2012, 22:53     Одномерный массив #9
Цитата Сообщение от stimo15 Посмотреть сообщение
С переменной j творится такая же ересь. Что не так?
то же самое пока не дойдет до
Цитата Сообщение от stimo15 Посмотреть сообщение
j=i;
там будет лежать мусор
а если совсем не дойдет (нет нулевых элементов в массиве) то так и останется
посему инициализируй её числом которое явно ей не присвоится (например -1)( до цикла)
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];*/
        }
    }
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
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 (ложь)
Croessmah
26.10.2012, 22:56
  #12

Не по теме:

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

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 22:59     Одномерный массив
Еще ссылки по теме:

Одномерный Массив - C++
Разработать программу обработки одномерного динамического массива. Программа должна содержать меню с перечнем вариантов работы с массивом...

Одномерный массив. - C++
Дан одномерный массив состоящий из n вещественных элементов. Сжать массив удалив из него все элементы, модуль которых не превышает...

одномерный массив - C++
Дан одномерный массив из n элементов,определите сумму первых B элементов и последних C элементов, если сумма 1ых будет больше суммы...

одномерный массив на [C] - C++
1)Дан одномерный массив состоящий из т элементов,найти min элемент и его порядковый номер. 2)Дан вещественный одномерный массив. найти...

Одномерный массив. - C++
Дан одномерный массив, состоящий из N вещественных элементов.На языке C++. 1)Вывести отрицательные элементы на экран в обратном...


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

Или воспользуйтесь поиском по форуму:
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
26.10.2012, 22:59  [ТС]     Одномерный массив #15
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
if (x[i]=0)
это присваивание.
все разобрался, спасибо всем кто помог!
Yandex
Объявления
26.10.2012, 22:59     Одномерный массив
Ответ Создать тему
Опции темы

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