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

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

Войти
Регистрация
Восстановить пароль
 
kerosineclub
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 8
#1

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

24.05.2010, 14:11. Просмотров 897. Ответов 12
Метки нет (Все метки)

Вводить два числа и искать их произведение, до тех пор пока последнее число не будет введено равным 1. Вводить три числа, до тех пор пока их сумма не окажется равной 0.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вводить два числа и искать их произведение, до тех пор пока последнее число не будет введено равным 1 (C++):

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

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

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

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

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

Пользователь вводит с клавиатуры числа, до тех пор пока не введено число 6 - C++
Пользователь вводит с клавиатуры числа, до тех пор пока не введено число 6. Найти сумму чисел до6. ЗЫ - не набросков не чего...

12
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
24.05.2010, 15:06 #2
C
1
2
3
4
5
while (y!=1)
{
  scanf ("%d,%d", &x, &y);
  printf ("%d\n", x*y);
}
C
1
2
3
4
5
while ((x+y+z)!=0)
{
  scanf ("%d,%d, %d", &x, &y, &z);
  printf ("%d\n", x+y+z);
}
разумеется только сами циклы, разумеется вместо вывода можно списывать результат в другую переменную.
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,966
24.05.2010, 15:12 #3
Тут рациональней использовать цикл do {} while
0
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
24.05.2010, 15:27 #4
А разница? Проверил - вроде работает. Это не претензия, просто интересно чем лучше
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,966
24.05.2010, 15:32 #5
В ваших примерах, прийдется инициализировать переменные x/y/z левыми значениями. А оно нам надо?

do/while
C++
1
2
3
4
5
6
7
8
9
10
11
do 
{    
    std::cin >> x >> y;
    std::cout << x*y << std::endl; } 
while (y!=1)
//
do 
{
    std::cin >> x >> y >> z;
    std:cout << x+y+z << std::endl; }
while ((x+y+z)!=0);
0
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
24.05.2010, 15:40 #6
Или я законченный эгоист и мне надо только чтоб работало, или я вас не понял пример "некрасивой" работы если можно?
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,966
24.05.2010, 15:44 #7
Какое вы имеете право сравнивать неинициализированные переменные?)
0
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
24.05.2010, 16:12 #8
первый и последний раз всё можно, даже уран лизнуть) просто видимо не до конца понимаю порядок работы. ибо работает всё верно с самых первых вводов, вот и подумал что "вайлится" он после введения "шага". да и в целом до сих пор так думаю, так что откровенно говоря не вижу "неправильности". уж извиняйте :|
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
24.05.2010, 16:19 #9
zViXz, в вашем случае значения, которые проверяются на первой итерации, представляют из себя мусор взятый и ячейки памяти, выделенной под вашу переменную. Содержимое ячейки - непредсказуемо и может так получится, что сумма окажется равной нулю или второе число равным единице еще до ввода значений и естественно ввод у вас не запросят, а еще, точно не помню в какой IDE(или даже в C#, который очень похож на С++, конструкции циклов аналогичны) значения изначально при объявлении инициализируются нулем. Опять же ваш цикл не сработает ни разу.

Думаю, объяснил.
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,966
24.05.2010, 16:20 #10
В переменных x/y/z могут хранится любые значения, т.к. они у нас не инициализированы.
А вы их сразу сравниваете с чем-то. Уловили?)
Да, шанс очень мал, что программа будет работать не правильно, но он есть. А при использовании, к примеру, do/while такго шанса вообще нет.

Добавлено через 31 секунду
M128K145, да-да)
0
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
24.05.2010, 16:27 #11
Уловил Даже больше чем объяснили. Не стоит всё таки проверять на кодпаде всё подряд. Он почему то не сругался ни разу. Благодарю и извиняюсь.

P.S. ссылки на кодпад чтоб не быть голословным
http://codepad.org/8eTVfiXO
http://codepad.org/kfZQRUCX
0
neske
1498 / 865 / 84
Регистрация: 26.03.2010
Сообщений: 2,966
24.05.2010, 16:37 #12
Дак а ругаться неначто, в синтаксисе нет ошибок.
1
zViXz
3 / 3 / 0
Регистрация: 15.05.2010
Сообщений: 25
25.05.2010, 07:36 #13
Речь не ошибках синтаксических, он работал правильно причём с первого же раза, причём стабильно. То что скомпилировалось на компе - не работало совсем Хотя уже не важно, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 07:36
Привет! Вот еще темы с ответами:

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

Вводить пятизначное число пока не будет введено правильноеповторять ввод, пока не будет введено пятизначное число. Не получается выполнить задание. - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); cout &lt;&lt; &quot;\t\t\tДеление числа на разряды.&quot;...

Составить программу, которая просит вводить буквы до тех пор, пока не будет введена буква y или Y - C++
На паре задали создать задачу: Составить программу, которая просит вводить буквы до тех пор, пока не будет введена буква y или Y. ...

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


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
25.05.2010, 07:36
Ответ Создать тему
Опции темы

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