Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите решить задачу!!!


Рекомендуемые сообщения

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. Для проверки это удобнее - ни ручной ввод, ни чтение сотни чисел не радуют.

Ссылка на комментарий
Поделиться на другие сайты

Ответ-------------->

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

Ну тогда пполучается, что пограмма выводит не сумму предыдущих чисел, а их последовательность до этого числа. Как же быть с суммой?

Ссылка на комментарий
Поделиться на другие сайты

hansas

Именно так и должно быть. В условии было сказано создать не одну сумму, а массив сумм разного количества членов первоначального массива. Выведенная последовательность - правильный результат работы программы на тестовом примере, когда мы заполнили исходный массив единицами.

По исходному массиву программа создала новый и вывела его на экран. Каждое из чисел нового массива - это сумма всех предыдущих чисел первоначального массива. Так как мы его заполнили единицами, то каждая выведенная сумма больше предыдущей на 1.

Например, выведенное третьим число 3 - это сумма всех членов первоначального массива с A[0] по A[2], то есть сумма трех единиц, соответственно равная 3. Если в исходном массиве будут другие числа (единицы мы в программе вводили только для того, чтобы проверить ее работу), результат работы программы соответственно изменится.

Ссылка на комментарий
Поделиться на другие сайты

Правильно будет так:

#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;

Ссылка на комментарий
Поделиться на другие сайты

hansas

Правильно будет так:
Не понял, что тут ты считаешь правильным. Суммой каких элементов является в твоем ответе, например, элемент массива с индексом 5? Этот вариант ты придумал сам?
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...