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

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

Войти
Регистрация
Восстановить пароль
 
ЕвгенийH2
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
#1

Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений - C++

05.11.2012, 21:24. Просмотров 616. Ответов 2
Метки нет (Все метки)

Здравствуйте, такое задание: "Вводить с клавиатуры элементы одномерного массива до тех пор, пока текущее значение не окажется равным сумме уже введенных значений". Вся проблема в том что нельзя использовать break. С данной функцией все получается, а перенеся условия if break в условия цикла ничего не получается. Вот Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
    {
        int *A = (int*) malloc(sizeof(int));
        int Sum = 0, i = 0;
 
        cout << "VVedite elementi massiva. \nVvod zakonchitsya kogda element budet raven summe predidushih.\n\n";
 
        do
            {
                cout << "Vvedite element massiva :";
                cin >> A[i];
                Sum = Sum + A[i];
                i++;
            }
 
        while(A[i] != Sum);
        return 0;
 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 21:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений (C++):

Вводить два числа и искать их произведение, до тех пор пока последнее число не будет введено равным 1 - C++
Вводить два числа и искать их произведение, до тех пор пока последнее число не будет введено равным 1. Вводить три числа, до тех пор пока...

Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность. - C++
Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую...

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

Вводить с клавиатуры целые числа пока их сумма меньше 100 - C++
Вводить с клавиатуры целые числа пока их сумма меньше 100 (запоминать введённые числа не требуется), посчитать и вывести на экран...

Вводить с клавиатуры числа до тех пор, пока не будет нажата клавиша <<ESC>> - C++
Задание: Вводить с клавиатуры числа до тех пор, пока не будет нажата клавиша &lt;&lt;ESC&gt;&gt;. На экран вывести кол-во вводимых чисел. #include...

Вводить с клавиатуры числа и выводить квадраты этих чисел до тех пор, пока не будет введено число 0 - C++
Нужно составить программу циклической структуры с использованием инструкции do...while. Задача: Вводить с клавиатуры целые числа (&gt;0)...

2
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
05.11.2012, 21:39 #2
Цитата Сообщение от ЕвгенийH2 Посмотреть сообщение
С данной функцией все получается, а перенеся условия if break в условия цикла ничего не получается. Вот Код:
что то не похоже что получается
Цитата Сообщение от ЕвгенийH2 Посмотреть сообщение
Sum = Sum + A[i];
Цитата Сообщение от ЕвгенийH2 Посмотреть сообщение
while(A[i] != Sum);
всегда будет не равна (если конечно мы не загоняем 0)
можно попробовать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
cout << "Vvedite element massiva :";
 
int tmp=0;
  cin >> tmp;
    while(tmp != Sum)  
         {
              A[i]=tmp;  
               cout << "Vvedite element massiva :";
                cin >> tmp;
                Sum = Sum + A[i];
                i++;
            };
далее ты выделяешь память под
один инт
Цитата Сообщение от ЕвгенийH2 Посмотреть сообщение
int *A = (int*) malloc(sizeof(int));
куда ты лезешь

Цитата Сообщение от ЕвгенийH2 Посмотреть сообщение
cin >> A[i];
надо перераспределять память
C
1
A =realloc(A,sizeof(int)*(i+1))
http://www.codenet.ru/progr/cpp/sprd/realloc.php
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
05.11.2012, 21:45 #3
Странное задание, первое же число, по идеи должно оказываться суммой уже введенных.
По коду у тебя ошибка в том, что ты сравниваешь сумму с не существующим числом, ты увеличиваешь i и только потом сравниваешь, надо наоборот сначала сравнивать потом увеличивать i.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2012, 21:45
Привет! Вот еще темы с ответами:

Вводить числа, пока не введен 0, найти мининимальное значение - C++
Вводится ряд чисел. Найти наименьшее число этого ряда. Признак окончания ввода - число 0. Мой код работает с ошибками, да и еще не знаю...

Вводить с клавиатуры целые числа (>0) и выводить на экран квадраты этих чисел до тех пор, пока не будет введено число 0. Использовать цикл do...while. - C++
Вводить с клавиатуры целые числа (&gt;0) и выводить на экран квадраты этих чисел до тех пор, пока не будет введено число 0. Использовать цикл...

Вводить числа с клавиатуры, пока не встретится 0. Подсчитать сумму всех * введенных нечетных чисел - PascalABC.NET
Помогите,пожалуйста! По информатике задали...Язык паскаль Вводить числа с клавиатуры, пока не встретится 0. Подсчитать сумму всех ...

Вводятся пары чисел (a;b) до тех пор, пока a не окажется равным 66. Вычислить сумму /а-b/ - Turbo Pascal
Вводятся пары чисел (a;b) до тех пор, пока a не окажется равным 66. Вычислить сумму /а-b/


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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