Вернуться   Развлекательный портал CN.ru - Форум > Технологии > Программирование > Начинающим

Ответ
 
Опции темы
Старый 20.12.2012, 22:11 ↑ #1
IIocJIeCMepTu Мужской
завсегдатай эго-форума
 
Аватар для IIocJIeCMepTu
 
Регистрация: 09.07.2008
Адрес: Новосибирск и разные уголки России
Возраст: 33
Сообщений: 291
Репутация: 2116
IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг
По умолчанию Интересный синтаксис С или ошибка?

На яндексе есть проект о по подготовке к ЕГЭ. Там в разделе информатика разбирают задачу сложности С2. Вот ссылка на задачу http://2012.ege-go.ru/zadania/grc/c2/s2-probl/

В чем соль. Там есть фрагмент кода на С.
Код:
#include 
 #define N 30 
 void main(void){
 int a[N]; 
 int i, j, k;
 for (i=0; i scanf(«%d», &a[i]); // ВОТ СОЛЬ
 … // тут предлагается дописать программу  . . .
 }
Выпишу еще раз for (i=0; i scanf(«%d», &a[i]);
Как я понимаю этим фрагментом мы заполняем вручную массив. Непонятен синтаксис цикла for в данном случае. Попробовал скомпилировать это в Coode::Blocks - выдает ошибку синтаксическую (много, понятно каких).

Это ошибка авторов или действительно на С есть такой способ заполнить массив (подобным синтаксисом сразу в шапке цикла)?
IIocJIeCMepTu вне форума   Ответить с цитированием
Старый 21.12.2012, 11:36 ↑ #2
Euler
завсегдатай эго-форума
 
Регистрация: 10.12.2012
Сообщений: 264
Репутация: 429
Euler за словом в карман не полезет Euler за словом в карман не полезет Euler за словом в карман не полезет Euler за словом в карман не полезет Euler за словом в карман не полезет
По умолчанию Re: Интересный синтаксис С или ошибка?

Цитата:
Сообщение от IIocJIeCMepTu Посмотреть сообщение
Выпишу еще раз for (i=0; i scanf(«%d», &a[i]);
Это ошибка авторов или действительно на С есть такой способ заполнить массив (подобным синтаксисом сразу в шапке цикла)?
Ошибка, даже скорее всего опечатка на сайте.
Euler вне форума   Ответить с цитированием
Старый 26.12.2012, 00:46 ↑ #3
useroff Мужской
Калину выращиваю...
АвтоКлуб
 
Аватар для useroff
 
Регистрация: 30.11.2006
Возраст: 38
Сообщений: 347
useroff отключил(а) отображение уровня репутации
По умолчанию Re: Интересный синтаксис С или ошибка?

Цитата:
Сообщение от IIocJIeCMepTu Посмотреть сообщение
Выпишу еще раз for (i=0; i scanf(«%d», &a[i]);
Видимо, имелось ввиду что-то вроде
Код:
for (i = 0; i < N; scanf(«%d», &a[i++]));
Вообще-то в более-менее приличных книжках расписывается, как выполняется цикл for(; в Сях, и какое значение имеют операторы в скобках.
__________________

Ищу картриджи для Dendy, SNES
useroff вне форума   Ответить с цитированием
Старый 03.01.2013, 18:29 ↑ #4
IIocJIeCMepTu Мужской
завсегдатай эго-форума
 
Аватар для IIocJIeCMepTu
 
Регистрация: 09.07.2008
Адрес: Новосибирск и разные уголки России
Возраст: 33
Сообщений: 291
Репутация: 2116
IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг IIocJIeCMepTu мегамозг
По умолчанию Re: Интересный синтаксис С или ошибка?

Непонятно же....
На месте scanf(«%d», &a[i++]) должен стоять инкремент (i++) или другой вариант изменения переменной.
scanf(«%d», &a[i++]) шо будет означать сие чудо? (постфикс ++ означает, что сначала вводим a[i], потом i увеличивается на 1, но что все это делет в шапке цикла, а не в его теле?)

Последний раз редактировалось IIocJIeCMepTu; 03.01.2013 в 18:50.
IIocJIeCMepTu вне форума   Ответить с цитированием
Старый 07.01.2013, 21:32 ↑ #5
r-kastaneda
новосёл
 
Регистрация: 14.11.2010
Сообщений: 11
Репутация: 0
r-kastaneda молчание-золото
По умолчанию Re: Интересный синтаксис С или ошибка?

Это вполне нормально для С и С++. Всмысле я имею ввиду такой вариант
Код:
for (i=0; scanf("%d", &a[i++];);
scanf() возвращает число присвоеных значений, таким образом цикл будет выполнятся до тех пор, пока будет происходить считывание чисел. По хорошему бы конечно добавить контроль за значением i, чтоб не выйти за пределы массива.
r-kastaneda вне форума   Ответить с цитированием
Старый 13.01.2013, 23:13 ↑ #6
weregod Мужской
unserializer
местный
 
Аватар для weregod
 
Регистрация: 03.07.2006
Возраст: 42
Сообщений: 117
Репутация: 353
weregod за словом в карман не полезет weregod за словом в карман не полезет weregod за словом в карман не полезет weregod за словом в карман не полезет
Отправить сообщение для weregod с помощью ICQ
По умолчанию Re: Интересный синтаксис С или ошибка?

не тот это ресурс, чтобы код приводить, в вашем с чётностью скобок косяк
weregod вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Текущее время: 23:50. Часовой пояс GMT +6.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot

ВКонтактeTwitterFacebook
Хотите связаться с нами? Напишите письмо, и мы обязательно ответим.