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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2012, 12:30   #1
sidestep
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 93
По умолчанию Светофор (enum)

Надо написать прогу, в ходе которой пользователь вводит цвет светофора, а на экран выводится следующий цвет по схеме: Red-Green-Yellow-Red...
Код:
Код:
#include <stdio.h>
#include <conio.h>
enum color {Red, Yellow, Green};
void check(color c)
{
	switch(c){
	case Red:
		printf ("A Red colour is showing now, soon the Green will be showing\n");
		break;
	case Yellow:
		printf ("A Yellow colour is showing now, soon the Red will be showing\n");
		break;
	case Green:
		printf ("A Green colour is showing now, soon the Yellow will be showing\n");
		break;
	default:
		printf ("Traffic light has broken\n");
	}
}
int main()
{
	color c;
	printf ("Please enter the color of traffic light\n");
	scanf ("%d", &c);
	check(c);
	getch();
	return 0;
}
Но тут приходиться вводит номер цвета, а как сделать, чтобы было можно печать любой цвет, а не номер?
sidestep вне форума Ответить с цитированием
Старый 18.03.2012, 13:56   #2
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

сравнивайте водимые строки, например
Код:
char ch[80];
printf ("Please enter the color of traffic light\n");
scanf ("%s", &ch);
if(strcmp(ch,"Red") == 0) c = Red;
if(strcmp(ch,"Yellow") == 0) c = Yellow;
if(strcmp(ch,"Green") == 0) c = Green;
microbit вне форума Ответить с цитированием
Старый 18.03.2012, 14:05   #3
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

а если использование enum обязательно?
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 18.03.2012, 14:34   #4
sidestep
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 93
По умолчанию

Можно например так тогда:
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
const int n = 80;
enum color {Red = 1, Yellow, Green,  errorColor};
void check(color c)
{
	switch(c){
	case Red:
		printf ("A Red colour is showing now, soon the Green will be showing\n");
		break;
	case Yellow:
		printf ("A Yellow colour is showing now, soon the Red will be showing\n");
		break;
	case Green:
		printf ("A Green colour is showing now, soon the Yellow will be showing\n");
		break;
		if (c==errorColor){
	default:
		printf ("Traffic light has broken\n");}
	}
}
color convertColor(char str[])
{
	color c;
	if ((0==strcmp ("Red", str)) || (0==strcmp ("red", str)) ){
		c=Red;} else 
			if ((0==strcmp ("Yellow", str)) || (0==strcmp ("yellow", str)) ){
				c=Yellow;} else  
					if ((0==strcmp ("green", str)) || (0==strcmp ("green", str))){
						c=Green;} 
					else c= errorColor;
					return c;
}	

int main()
{  
	color c;
	char a[n];
	printf ("Please enter the color of traffic light\n");
	gets(a);
	c=convertColor(a);
	check(c);
	getch();
	return 0;
}

Последний раз редактировалось sidestep; 18.03.2012 в 14:43.
sidestep вне форума Ответить с цитированием
Старый 18.03.2012, 14:55   #5
S1av0k
Пользователь
 
Регистрация: 26.11.2009
Сообщений: 87
По умолчанию

Да, но честно говоря я не совсем понимаю, зачем здесь вообще нужен enum
Помог - жми весы
S1av0k вне форума Ответить с цитированием
Старый 18.03.2012, 15:02   #6
sidestep
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 93
По умолчанию

Ну задание было таким, что надо использовать его

Последний раз редактировалось sidestep; 18.03.2012 в 16:04.
sidestep вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Светофор АЛЕКСАНДЕР 999 Паскаль, Turbo Pascal, PascalABC.NET 0 17.02.2012 18:59
Светофор и флаг танкек Паскаль, Turbo Pascal, PascalABC.NET 13 14.12.2011 09:31
светофор zanik Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2010 21:35
Светофор junkie Паскаль, Turbo Pascal, PascalABC.NET 7 23.12.2010 19:22
Светофор Porsche Общие вопросы C/C++ 2 15.05.2010 00:13