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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2010, 13:10   #1
AleksENN
Пользователь
 
Регистрация: 24.06.2010
Сообщений: 17
Сообщение Обьясните ( оператор иф)

вроде бы простая задачка(только вторая пара обучения)...но запутался. Предполагаю что проблема в расстановке и закрытии скобок. Нужно определить есть ли положительные среди трёх цифр. Был бы благодарен не просто показать как - а хоть немного получить ответ почему.
Вот мой код
Код:
# include <iostream>
	using namespace std;
	void main(){
		// обьявляем переменные а, в, с
		int a, b,c;
		// запрос на ввод цифр с клавиатуры
		cout<<"Enter a =:\n";
		cin>>a;
	    cout<<"Enter b =:\n";
		cin>>b;
		cout<<"Enter c =:\n";
		cin>>c;
		if(a>0){ // проверка а на положительность
		cout<<"Yes!!!\n";
		else if(a<=0){  
		cout<<"No!!!\n";
		if(b>0){ // проверка b на положительность
		cout<<"Yes!!!\n";
		else if(b<=0) { 
	    cout<<"No!!!\n";
		if(c>0) // проверка c на положительность
		cout<<"Yes!!!\n";
		else if(c<=0){  
		cout<<"No!!!\n";
}

Последний раз редактировалось Stilet; 24.06.2010 в 13:14.
AleksENN вне форума Ответить с цитированием
Старый 24.06.2010, 13:15   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Зачем в else еще один if? Ведь ветвь else наступит когда число меньше или равно нулю. Это мышиная возня не нужна. Else наступает когда условие неверно. И уж тем более, ИМХО, нет смысла делать скобки вложенными. Здесь можно проверять последовательно. Попробуйте выполнить программу сами вместо компьютера и все поймете.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 24.06.2010 в 13:18.
Utkin вне форума Ответить с цитированием
Старый 24.06.2010, 13:17   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if( (a>0)||(b>0)||(c>0) ){cout<<"Yes!!!\n";}
Переводится как
Если а>0 или b>0 или c>0 то ...

Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2010, 13:19   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Код:
if(a>0){ // проверка а на положительность
cout<<"Yes!!!\n";
else if(a<=0){ 
cout<<"No!!!\n";
if(b>0){ // проверка b на положительность
cout<<"Yes!!!\n";
else if(b<=0) { 
cout<<"No!!!\n";
if(c>0) // проверка c на положительность
cout<<"Yes!!!\n";
else if(c<=0){ 
cout<<"No!!!\n";
}
Здесь ваши ошибки.
Код:
if(a>0){ // проверка а на положительность
cout<<"Yes!!!\n";
Знак { здесь не нужен, так как это не составной оператор.
Код:
else if(a<=0){ 
cout<<"No!!!\n";
Также знак { не нужен и
Код:
if(a<=0
Тоже не нужно, так вы сначала проверяете случай а>0 и в противном случае оно и так меньше либо равно нулю!Проверка не нужна! И так, в общем для каждого числа.


Добавлено позже:
Извините за повтор сказанного... Не успел я...
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.06.2010, 13:42   #5
AleksENN
Пользователь
 
Регистрация: 24.06.2010
Сообщений: 17
По умолчанию

спасибо всем ответившим. Теперь понятно что можно сделать проще и как будет правильно.
AleksENN вне форума Ответить с цитированием
Старый 24.06.2010, 13:47   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

спасибо в карман не положишь ... а вот репутацию положишь...
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьясните FreeZeT Помощь студентам 3 15.06.2010 04:27
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
Обьясните... Droid Общие вопросы Delphi 4 12.05.2008 12:57
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10