Re[5]: Цифры в столбик
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 30.07.03 13:17
Оценка: +1
Здравствуйте, m.a.g., Вы писали:

MAG>Здравствуйте, ЖуК, Вы писали:


ЖуК>>
ЖуК>>main(i){cout<<i-1<<"\n";i<101&&main(i+1);}
ЖуК>>

ЖуК>>42

MAG>Не пойдет. В C++, в отличие от C, обязательно объявление функций перед использованием.

???
А какую функцию он не объявил перед использованием?
King Oleg
*Читайте DOC'и, они rules*
Re[4]: Цифры в столбик
От: Plague Россия  
Дата: 31.07.03 05:43
Оценка:
Здравствуйте, ЖуК, Вы писали:

ЖуК>
ЖуК>main(i){cout<<i-1<<"\n";i<101&&main(i+1);}
ЖуК>

ЖуК>42

неа, инклады подключать надо и неймспейс
... << RSDN@Home 1.1 beta 1 >>
Re: Цифры в столбик
От: Plague Россия  
Дата: 31.07.03 05:43
Оценка:
Здравствуйте, Goodkov, Вы писали:

G>Задача состоит в следующем. Необходимо написать программу на С, которая выводит в столбец цифры от 0 до 100. Цель — получить как можно меньший размер исходника в символах(считая пробелы и т.д.). Запрещено пользоваться, операторами цикла (for, while ). Сам написал где-то в районе 50 символов, слышал про 41 (под gcc).


43 символа

main(i){printf("%d\n",i);i-100&&main(i+1);}
... << RSDN@Home 1.1 beta 1 >>
Re[6]: Цифры в столбик
От: m.a.g. Мальта http://dottedmag.net/
Дата: 31.07.03 06:41
Оценка:
Здравствуйте, King Oleg, Вы писали:

ЖуК>>>
ЖуК>>>main(i){cout<<i-1<<"\n";i<101&&main(i+1);}
ЖуК>>>

ЖуК>>>42

MAG>>Не пойдет. В C++, в отличие от C, обязательно объявление функций перед использованием.

KO>???
KO>А какую функцию он не объявил перед использованием?

std::ostream& operator<<(std::ostream&, int);
std::ostream& operator<<(std::ostream&, const char*);

А также класс std::ostream и глобальный объект std::cout. Мало того, объект cout не введен в текущее пространство имен из std.

Кроме того, в объявлении функции main(i) в C++ обязательно указание типа i и типа возвращаемого значения, и, к тому же, это недопустимый набор аргументов.
... << RSDN@Home 1.1 beta 1 >>
Re[5]: Цифры в столбик
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 31.07.03 06:53
Оценка:
Здравствуйте, Plague, Вы писали:

P>Здравствуйте, ЖуК, Вы писали:


ЖуК>>
ЖуК>>main(i){cout<<i-1<<"\n";i<101&&main(i+1);}
ЖуК>>

ЖуК>>42

P>неа, инклады подключать надо и неймспейс

Для printf() тоже самое.
King Oleg
*Читайте DOC'и, они rules*
Re[6]: Цифры в столбик
От: m.a.g. Мальта http://dottedmag.net/
Дата: 31.07.03 07:09
Оценка:
Здравствуйте, King Oleg, Вы писали:

ЖуК>>>
ЖуК>>>main(i){cout<<i-1<<"\n";i<101&&main(i+1);}
ЖуК>>>

ЖуК>>>42

P>>неа, инклады подключать надо и неймспейс

KO>Для printf() тоже самое.

Ничего подобного. В классическом C функцию разрешается использовать без объявления.
... << RSDN@Home 1.1 beta 1 >>
Re[6]: Цифры в столбик
От: Plague Россия  
Дата: 31.07.03 08:26
Оценка:
Здравствуйте, King Oleg, Вы писали:

P>>неа, инклады подключать надо и неймспейс

KO>Для printf() тоже самое.

втом то и дело что это не так!
делов том что объявление происходит при первом использовании, но оно может не соответствовать типу функции... но как раз использование в С в наших случаях соответствует прототипам, и в соглашениях о вызовах стек при вызове функции высвобождает вызывающий... так что все хорошо!
... << RSDN@Home 1.1 beta 1 >>
Re[2]: Цифры в столбик
От: Plague Россия  
Дата: 31.07.03 08:38
Оценка:
Здравствуйте, Plague, Вы писали:

P>Здравствуйте, Goodkov, Вы писали:


G>>Задача состоит в следующем. Необходимо написать программу на С, которая выводит в столбец цифры от 0 до 100. Цель — получить как можно меньший размер исходника в символах(считая пробелы и т.д.). Запрещено пользоваться, операторами цикла (for, while ). Сам написал где-то в районе 50 символов, слышал про 41 (под gcc).


43 символа, но новая версия старая начиналась с 1, а не с нуля...
а у всех остальных начинается с единицы

i;main(){printf("%d\n",i);i++-100&&main();}
... << RSDN@Home 1.1 beta 1 >>
Re: Цифры в столбик: 39 символов!
От: Apapa Россия  
Дата: 31.07.03 12:56
Оценка: 30 (4)
Здравствуйте, Goodkov, Вы писали:

G>Задача состоит в следующем. Необходимо написать программу на С, которая выводит в столбец цифры от 0 до 100. Цель — получить как можно меньший размер исходника в символах(считая пробелы и т.д.). Запрещено пользоваться, операторами цикла (for, while ). Сам написал где-то в районе 50 символов, слышал про 41 (под gcc).


39 символов:
i;main(){printf("%d\n",++i)-4&&main();}

main(i){printf("%d\n",i++)-4&&main(i);}

Можно конечно во втором варианте i++ убрать в main и заменить на i+1 или на ++i.


P.S. Придумал еще нечестный вариант 39 символов (при запуске нужно указать 100 любых аргументов, если получится ):
main(i){--i&&main(i)&printf("%d\n",i);}

основанный на принципе не (действие,рекурсия), а (рекурсия,действие).


Здесь могла бы быть Ваша реклама!
Re[2]: Цифры в столбик: 39 символов!
От: AlexVinS Россия  
Дата: 31.07.03 13:24
Оценка:
Здравствуйте, Apapa, Вы писали:
маленькое исправление
...
A>39 символов:
A>
i;main(){printf("%d\n",i++)-4&&main();}

...
чтобы с нуля начиналось.


Умный человек знает не многое, но нужное
Re[3]: Цифры в столбик: 39 символов!
От: Apapa Россия  
Дата: 31.07.03 13:55
Оценка:
Здравствуйте, AlexVinS, Вы писали:

AVS>Здравствуйте, Apapa, Вы писали:

AVS>маленькое исправление
AVS>...
A>>39 символов:
A>>
i;main(){printf("%d\n",i++)-4&&main();}

AVS>...
AVS>чтобы с нуля начиналось.

Вот елки! Я наоборот старался, чтобы было от 1 до 100. Невнимательность, невнимательность...
Хотя это не существенно. Я думаю мою идею про "printf(...)-4&&..." это не портит.


Здесь могла бы быть Ваша реклама!
Re[4]: Цифры в столбик: 39 символов!
От: AlexVinS Россия  
Дата: 31.07.03 14:12
Оценка:
Здравствуйте, Apapa, Вы писали:

A>Здравствуйте, AlexVinS, Вы писали:


AVS>>Здравствуйте, Apapa, Вы писали:

AVS>>маленькое исправление
AVS>>...
A>>>39 символов:
A>>>
i;main(){printf("%d\n",i++)-4&&main();}

AVS>>...
AVS>>чтобы с нуля начиналось.

A>Вот елки! Я наоборот старался, чтобы было от 1 до 100. Невнимательность, невнимательность...

A>Хотя это не существенно. Я думаю мою идею про "printf(...)-4&&..." это не портит.

Согласен идея . Для полного решения осталось доказать что короче нельзя


Умный человек знает не многое, но нужное
Re[2]: Цифры в столбик: 39 символов!
От: Goodkov Россия  
Дата: 31.07.03 14:47
Оценка:
A>
i;main(){printf("%d\n",++i)-4&&main();}

A>
main(i){printf("%d\n",i++)-4&&main(i);}

A>P.S. Придумал еще нечестный вариант 39 символов (при запуске нужно указать 100 любых аргументов, если получится ):
A>
main(i){--i&&main(i)&printf("%d\n",i);}

A>основанный на принципе не (действие,рекурсия), а (рекурсия,действие).

Дайте мне копилятор который все это дело откомпилирует!!!
А то мой не хочет!!!
Re[3]: Цифры в столбик: 39 символов!
От: Apapa Россия  
Дата: 31.07.03 15:05
Оценка:
Здравствуйте, Goodkov, Вы писали:

A>>
i;main(){printf("%d\n",++i)-4&&main();}

A>>
main(i){printf("%d\n",i++)-4&&main(i);}


G>Дайте мне копилятор который все это дело откомпилирует!!!

G>А то мой не хочет!!!

Компилировать нужно .c на C-шном, а не на C++-шном. В данном случае это обязательно. Я брал wcc из Watcom. Можно wcc386 оттуда же.
Какие ошибки выдает?


Здесь могла бы быть Ваша реклама!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.