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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2011, 21:32   #1
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
Вопрос Не могу разобраться с командой if

Здраствуйте все уменя вот задание дали
Напишите программу которая запрашивает у пользователя номер месяца и затем выводит соответсвуеше название времени года В случае если пользователь введёт недопустимое число программа должна вывести сообщение "Ошибка ввода данных"
Вот мой код
Код:
#include <iostream>
#include <Windows.h>
using namespace std;
int main ()
{
	SetConsoleOutputCP(1251);

	int nomer,mesyaz;

	cout<<"Ведите номер месяца"<<endl;
	cin>>nomer;

	if (nomer==1){
		cout<<"Зима"<<endl;
	}
    if (nomer==2){
		cout<<"Зима"<<endl;
	}
	if (nomer==3){
		cout<<"Весна"<<endl;
	}
    if (nomer==4){
		cout<<"Весна"<<endl;
	}
	if (nomer==5){
		cout<<"Весна"<<endl;
	}
	if (nomer==6){
		cout<<"Лето"<<endl;
	}
	if (nomer==7){
		cout<<"Лето"<<endl;
	}
	if (nomer==8){
		cout<<"Лето"<<endl;
	}
	if (nomer==9){
		cout<<"Осень"<<endl;
	}
	if (nomer==10){
		cout<<"Осень"<<endl;
	}
	if (nomer==11){
		cout<<"Зима"<<endl;
	}
	if (nomer==12){
		cout<<"Зима"<<endl;
	}
	else
		cout<<"Неверное значение"<<endl;
}
Вчом уменя ошибка помогите укажите мне сильно не ругайте ибо только 3 день в Си

Последний раз редактировалось Stilet; 27.09.2011 в 21:49. Причина: Не дописал свою причину до конца
FRATER1234 вне форума Ответить с цитированием
Старый 26.09.2011, 21:51   #2
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию

При вводе значения в не заданого диапазона выводит все правильно
else у тебя используется только 1 раз при значении 12 для других других оно не используется.
Господа - учитесь юзать поисковые машины
web-обитель | авто

Последний раз редактировалось madmaniac; 26.09.2011 в 21:58.
madmaniac вне форума Ответить с цитированием
Старый 26.09.2011, 22:30   #3
БалаШагаЛ
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 131
По умолчанию

Вариант 1 (не очень красивый, честно говоря):
Код:
#include <iostream>

int main()
{
    int n;
    std::cin >> n;
    if ((n==1)||(n==2))
      std::cout << "Зима";
    if ((n>=3)&&(n<=5))
      std::cout << "Весна";
    if ((n>=6)&&(n<=8))
      std::cout << "Лето";
    if ((n>=9)&&(n<=11))
      std::cout << "Осень";
    if (n==12)
      std::cout << "Зима";
    if ((n<1)||(n>12))
      std::cout << "Неверное значение";
}
Вариант 2 (но уже со switch-ем):
Код:
#include <iostream>

int main()
{
    int n;
    std::cin >> n;
    switch(n)
    {
        case 12:
        case 1:
        case 2:
        std::cout << "Зима";
        break;
        case 3:
        case 4:
        case 5:
        std::cout << "Весна";
        break;
        case 6:
        case 7:
        case 8:
        std::cout << "Лето";
        break;
        case 9:
        case 10:
        case 11:
        std::cout << "Осень";
        break;
        default:
        std::cout << "Неверное значение";
    }
}
БалаШагаЛ вне форума Ответить с цитированием
Старый 26.09.2011, 23:32   #4
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

А как бы если мой код подправить чучуть более легче не просто задание дали скомандой if ато я то не проходил ишо))
FRATER1234 вне форума Ответить с цитированием
Старый 26.09.2011, 23:50   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чем вам не угодил первый вариант из сообщения выше? Если испугало std:: , то можете не обращать на это внимание — у вас using namespace std есть.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 00:41   #6
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

просто вот тоесть эти строчки что обозначают if ((n==1)||(n==2)) я так понимаю что "n " равно единице или равно 2 и как оно тут действует втом понимании if команда без else ??просто прошу объеснить
FRATER1234 вне форума Ответить с цитированием
Старый 27.09.2011, 00:42   #7
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

Если немного подумать, то можно вообще без всяких условий обойтись, в пару строчек кода.
SnX вне форума Ответить с цитированием
Старый 27.09.2011, 00:55   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
if ((n==1)||(n==2)) я так понимаю что "n " равно единице или равно 2 и как оно тут действует втом понимании if команда без else ??просто прошу объеснить
Если n равно 1 или если n равно 2.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.09.2011, 01:25   #9
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Спс за разъяснения оч благодарен яб хотелбы ишо коечто спросить по другой задачке чтоб не создавать тему ищо одну шас залью файлик не моглиб вы подсказать как там сделать её счего начать и чем пользоваться
FRATER1234 вне форума Ответить с цитированием
Старый 27.09.2011, 01:26   #10
FRATER1234
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 68
По умолчанию

Я так понял можно её сделать через свитч а вот как только? какая там формула расчета нужна чтоб правельно посчитать сколько стоимость 3 минут я вот додуплить не могу
FRATER1234 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться feesta Помощь студентам 0 10.04.2011 20:19
Не могу разобраться Lokin Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 22.03.2010 22:45
Не могу разобраться Zmaxer Помощь студентам 24 10.10.2009 18:52