Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 15:07   #1
AdmS
 
Регистрация: 25.05.2011
Сообщений: 8
По умолчанию Вопрос про возврат к условию

Есть вот такая задача, вывод всех трехзначных чисел сумма которых равна вводимому числу. так вот если число больше 27, то таких значений нет и программа останавливается, иначе продолжаем вводить. Подскажите пожалуйста, а как вернуться снова к условию ввода числа, ну что нибудь на подобе go to в паскале?
Код:
#include <iostream> 
using namespace std;

int main() 
{
 setlocale (LC_CTYPE, "Russian_Russia.1251");
 int summa,nat_chisl;
 cout << "Ведите натуральное число: " ;
 cin >> nat_chisl;
	 if (nat_chisl > 28) cout << " Для данного числа суммы чисел нет\n";
		else 
    	 for (summa=100; summa<1000; summa++)
	     if (((summa/100)+((summa/10)%10)+(summa%10))==nat_chisl) cout << summa << std::endl; 
return 0;
}
AdmS вне форума Ответить с цитированием
Старый 29.05.2011, 15:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему в Си goto есть...
Закутай этот код в функцию и вызывай в цикле
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2011, 16:18   #3
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

Можно заключить всё в бесконечный цикл while(1) и после проверки введённого числа использовать continue. А goto вроде работает только если метки ниже по тексту программы.
Mahin вне форума Ответить с цитированием
Старый 29.05.2011, 21:29   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Код:
#include <iostream> 
using namespace std;

int main() 
{
 while(true){
  setlocale (LC_CTYPE, "Russian_Russia.1251");
  int summa,nat_chisl;
  cout << "Ведите натуральное число: " ;
  cin >> nat_chisl;
	 if (nat_chisl > 28){
                cout << " Для данного числа суммы чисел нет\n";
                break;
	} else 
    	 for (summa=100; summa<1000; summa++)
	     if (((summa/100)+((summa/10)%10)+(summa%10))==nat_chisl) cout << summa << std::endl; 
 }
return 0;
}
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 30.05.2011, 20:11   #5
AdmS
 
Регистрация: 25.05.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Код:
#include <iostream> 
using namespace std;

int main() 
{
 while(true){
  setlocale (LC_CTYPE, "Russian_Russia.1251");
  int summa,nat_chisl;
  cout << "Ведите натуральное число: " ;
  cin >> nat_chisl;
	 if (nat_chisl > 28){
                cout << " Для данного числа суммы чисел нет\n";
                break;
	} else 
    	 for (summa=100; summa<1000; summa++)
	     if (((summa/100)+((summa/10)%10)+(summa%10))==nat_chisl) cout << summa << std::endl; 
 }
return 0;
}
спасибо за ответ, но хотелось бы не много другого, здесь получается, что после веденного верного числа, то есть меньше 27 программа продолжается, а после не правильного, завершается, а хотелось бы наоборот. такое возможно?
AdmS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про Свойство Visible и про иконки в imagelist Kappi4 Компоненты Delphi 2 21.05.2010 13:10
Вопрос по условию. (паскаль) aslanbek999 Помощь студентам 5 03.06.2009 18:32
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос про IP ЧИЖ Работа с сетью в Delphi 1 23.06.2008 13:53
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24