Тролль Опубликовано 17 марта, 2005 Жалоба Поделиться Опубликовано 17 марта, 2005 hansas for (i=0; i<100; i++) A=1; А вообще вот подкорректированная программа: #include <iostream.h> void main() { int i; int A[10]; for (i=0; i<10; i++) A=1; int sum = 0; int temp = 0; for (i=1; i<10; i++) { temp = A; A=sum+A[i-1]; sum = temp; cout <<"Summa predidushchih chlenov ravna-->"<<A<<endl; } } Тут первый цикл вводит в каждый элемент массива единицу. А второй цикл занимается изменением массива по условию задачи. Если хочешь заполнять массив вручную, что правильнее, но утомительнее, то надо заменить A=1; на cin >> A; Массив я сделал длиной 10, а не 100. Для проверки это удобнее - ни ручной ввод, ни чтение сотни чисел не радуют. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
hansas Опубликовано 18 марта, 2005 Автор Жалоба Поделиться Опубликовано 18 марта, 2005 Ответ--------------> Summa predidushchih chlenov ravna-->1 Summa predidushchih chlenov ravna-->2 Summa predidushchih chlenov ravna-->3 Summa predidushchih chlenov ravna-->4 Summa predidushchih chlenov ravna-->5 Summa predidushchih chlenov ravna-->6 Summa predidushchih chlenov ravna-->7 Summa predidushchih chlenov ravna-->8 Summa predidushchih chlenov ravna-->9 Press any key to continue Ну тогда пполучается, что пограмма выводит не сумму предыдущих чисел, а их последовательность до этого числа. Как же быть с суммой? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 марта, 2005 Жалоба Поделиться Опубликовано 18 марта, 2005 hansas Именно так и должно быть. В условии было сказано создать не одну сумму, а массив сумм разного количества членов первоначального массива. Выведенная последовательность - правильный результат работы программы на тестовом примере, когда мы заполнили исходный массив единицами. По исходному массиву программа создала новый и вывела его на экран. Каждое из чисел нового массива - это сумма всех предыдущих чисел первоначального массива. Так как мы его заполнили единицами, то каждая выведенная сумма больше предыдущей на 1. Например, выведенное третьим число 3 - это сумма всех членов первоначального массива с A[0] по A[2], то есть сумма трех единиц, соответственно равная 3. Если в исходном массиве будут другие числа (единицы мы в программе вводили только для того, чтобы проверить ее работу), результат работы программы соответственно изменится. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
hansas Опубликовано 18 марта, 2005 Автор Жалоба Поделиться Опубликовано 18 марта, 2005 Правильно будет так: #include <iostream.h> void main() { int i; int A[5]; for (i=0; i<5; i++) A=1; int sum = 0; int temp = 0; for (i=1; i<5; i++) { sum+= A; A=sum+A[i-1]; cout <<"Summa predidushchih chlenov ravna-->"<<A<<endl; } } Ответ: 5=11;4=7;3=4;2=2; Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 марта, 2005 Жалоба Поделиться Опубликовано 18 марта, 2005 hansas Правильно будет так: Не понял, что тут ты считаешь правильным. Суммой каких элементов является в твоем ответе, например, элемент массива с индексом 5? Этот вариант ты придумал сам? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
hansas Опубликовано 18 марта, 2005 Автор Жалоба Поделиться Опубликовано 18 марта, 2005 0 1 2 3 4 5 5--->4+3+2+1+0=11 Ведь требовалось чтобы каждый элемент массива заменился суммой предыдущих. Добавлено : [mergetime]1111171491[/mergetime] 0 1 2 3 4 5 5--->4+3+2+1+0=11 Ведь требовалось чтобы каждый элемент массива заменился суммой предыдущих. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 марта, 2005 Жалоба Поделиться Опубликовано 18 марта, 2005 Ну, во-первых, элементов со значениями 0, 2, 3, 4 в исходном массиве не было. Во-вторых, ты уверен, что "4+3+2+1+0=11"? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 18 марта, 2005 Жалоба Поделиться Опубликовано 18 марта, 2005 4+3+2+1+0=10 Массив: 1,1,1,1,1 Сумма: 1+1+1+1+1=5 Попробуй заменит: for (i=0; i<5; i++)A[i]=1; на: for (i=0; i<5; i++)A[i]=i; Тогда массив будет: 0,1,2,3,4 Сумма должна бит: 0+1+2+3+4=10 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.