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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2010, 15:45   #1
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию простенькая С задача

Цитата:
Write a C/C++ program that accepts a number from the user and prints “Even” if the entered number is even and prints “Odd” if the number is odd. Your are not allowed to use any comparison (==, <, >..etc) or conditional (if, else, switch, ternary operator,..etc) statement.
разнообразим данный раздел, набитый нытьем о выборе яп и ос.
решаем. первому зачот
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 15:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int _tmain(int argc, _TCHAR* argv[])
{
	char s[2][10]={"Even","Odd"};
	int i;
	scanf("%d",&i);
	printf("%s",s[i%2]);
	getchar();getchar();
	return 0;
}
Плюсиком в репу?...

Интересно посмотреть какие альтернативные решения
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 15:57   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
угу. так же сделал. видимо эт единственное решение, соответствующее ограничениям
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 15:58   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

я как понял, число если четное то вывести Even, иначе Odd? Если так, то просто, логика такая: печатать под строку, индекс для начала копирования строки будет равен к примеру (number % 2) * 5 (длина Even) от строки "EvenOdd", ну и рассчитать кол-во копируемых символов, знаем начала и длину строки, если четное, то индекс 0 и длина попросту берем (длину Even) 5, иначе выйдет длина строки - начало = 3 (длина Odd).
Вот и все. Если конечно задачу понял верно.

Edit:
Stilet, сразу и не подумал как то, это все видимо работу и парсинг чего-то опять

Последний раз редактировалось BOBAH13; 30.08.2010 в 16:00.
BOBAH13 вне форума Ответить с цитированием
Старый 30.08.2010, 16:01   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2BOBAH13
с копированием нужны условия, которые юзать нельзя. впредь просто приводи пример кода, всем будет понятнее

да, догнал. тоже сработает
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 16:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
видимо эт единственное решение, соответствующее ограничениям
Готов поспорить:
Код:
	char s[2][10]={"Even","Odd"};
	int i;bool k;
	scanf("%d",&i);
	for(k=0;i>1;k=!k,i--);
	printf("%s",s[(int)k]);
	getchar();getchar();
	return 0;
Ану господа, шевелите моском. Я хочу посмотреть варианты
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 16:10   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
я думаю все циклы приравниваются к условиям тем более
Цитата:
Your are not allowed to use any comparison (==, <, >..etc)
вариант от BOBAH13 получился такой:

Цитата:
int main()
{
int i = 4;
const char *str = "even\0odd";
printf("%s\n", &str[(i % 2) * 5]);
return 0;
}
но если подумать, это практически первый способ и есть
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 30.08.2010 в 16:14.
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 16:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я думаю все циклы приравниваются к условиям
Хм... Тут я бы тоже поспорил... Вдруг компилятор захочет в loop ассемблеровский перевести... Впрочим предположим что да.
Цитата:
вариант от BOBAH13 получился такой:
Тот же массив )))))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 16:16   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Вдруг компилятор захочет в loop ассемблеровский перевести
да пофиг во что он его переведет. ограничение на сишный синтаксис

Цитата:
Тот же массив )))))
угу. но почему то идея с указателями на константные строки быстрее пришла) (я исопользовал char *str[] = {...})
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 16:20   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
int number = 5;
char s[7] = "OddEven";
char result[5] = {0};
s += (number % 2) * 3;
strncopy(result, s, 3 + (number % 2));
Результат в result, писал прямо в браузере, попробуйте кто нибудь. А то сразу не верующие, нужны условия ))
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простенькая задача в Делфи: разбор натурального числа Fantazerishka Помощь студентам 4 23.09.2009 17:13
Простенькая задача на Java Arhangel_bes Помощь студентам 4 24.03.2009 18:48
Простенькая задача на С KoVeN Помощь студентам 4 25.12.2008 08:15
Простенькая задача Делфи Katovski Помощь студентам 18 02.05.2008 20:39