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

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

Восстановить пароль Регистрация
 
ЕвгенийH2
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 6
05.11.2012, 21:24     Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений #1
Здравствуйте, такое задание: "Вводить с клавиатуры элементы одномерного массива до тех пор, пока текущее значение не окажется равным сумме уже введенных значений". Вся проблема в том что нельзя использовать 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;
 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 21:24     Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений
Посмотрите здесь:

C++ Вводить два числа и искать их произведение, до тех пор пока последнее число не будет введено равным 1
Вводить с клавиатуры числа до тех пор, пока не будет нажата клавиша <<ESC>> C++
C++ Вводить с клавиатуры целые числа (>0) и выводить на экран квадраты этих чисел до тех пор, пока не будет введено число 0. Использовать цикл do...while.
C++ Написать программу, которая вычисляет значение выражения, и определить ее значение для введенных пользователем значений фактических параметров.
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Вводить с клавиатуры числа и выводить квадраты этих чисел до тех пор, пока не будет введено число 0 C++
C++ Вводить с клавиатуры целые числа пока их сумма меньше 100
Вводить числа, пока не введен 0, найти мининимальное значение C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
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
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
05.11.2012, 21:45     Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений #3
Странное задание, первое же число, по идеи должно оказываться суммой уже введенных.
По коду у тебя ошибка в том, что ты сравниваешь сумму с не существующим числом, ты увеличиваешь i и только потом сравниваешь, надо наоборот сначала сравнивать потом увеличивать i.
Yandex
Объявления
05.11.2012, 21:45     Динамические массивы: Вводить с клавиатуры элементы, пока значение не окажется равным сумме уже введенных значений
Ответ Создать тему
Опции темы

Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru