Цикл выполняется до тех пор, пока выражение b - c оценивается как true. Что такое true в Си? Кажись, любой не нуль. Значит, цикл увеличения b от нуля и заполнения массива f[] выполняется до тех пор, пока b не сравняется с с, т.е. до 2800. Массив f[] заполняется одинаковыми числами 10000/5 = 2000.
Пока не сильно ошибся?
对于第一个周期,b = c = 2800。(循环将是 "for(;0;)")但循环仍将执行一次。然后数字a/5或2000将被写进单元格f[2800](b=2800)。b增加1后,b将变成2801。
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело
Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.
Операция последовательного вычисления обозначается запятой (,) и используется для вычисления двух и более выражений там, где по синтаксису допустимо только одно выражение. Эта операция вычисляет два операнда слева направо. При выполнении операции последовательного вычисления, преобразование типов не производится. Операнды могут быть любых типов. Результат операции имеет значения и тип второго операнда. Отметим, что запятая может использоваться также как символ разделитель, поэтому необходимо по контексту различать, запятую, используемую в качестве разделителя или знака операции.
Mathemat>>: Операция последовательного вычисления обозначается запятой (,) и используется для вычисления двух и более выражений там, где по синтаксису допустимо только одно выражение. Эта операция вычисляет два операнда слева направо. При выполнении операции последовательного вычисления, преобразование типов не производится. Операнды могут быть любых типов. Результат операции имеет значения и тип второго операнда. Отметим, что запятая может использоваться также как символ разделитель, поэтому необходимо по контексту различать, запятую, используемую в качестве разделителя или знака операции.
А вот дальше непонятка. В первой шапке (внешнем цикле) условие d=0 как-то напрягает. Это ж всегда true?
在C语言中,可以肯定的是(D是这一点的见证),对于检查最后一个表达式的真实性。
Цикл выполняется до тех пор, пока выражение b - c оценивается как true. Что такое true в Си? Кажись, любой не нуль. Значит, цикл увеличения b от нуля и заполнения массива f[] выполняется до тех пор, пока b не сравняется с с, т.е. до 2800. Массив f[] заполняется одинаковыми числами 10000/5 = 2000.
Пока не сильно ошибся?
http://www.languagec.info/oper_for.php。
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело
Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.
让我们专注于内部循环而不是。所以。
从b=c开始。
条件下
被执行。
尤其要理解条件,因为它们都是赋值运算符。
MetaDriver писал(а) >>
// 其实说起来for(; g=c*2; )在这个版本中会好很多: for( g=c*2; g !=0; )
不,它不是那样工作的。 g=c*2 - 应该在每个循环中重新计算。
下一个版本。
你没有单一的如果,它不像那样工作。
再次,你需要了解条件,这是最主要的。我不知道在哪里可以找到这本教科书。
http://www.languagec.info/oper_for.php:
Давай лучше на внутреннем цикле сосредоточимся. Итак:
Начиная с b=c,
при условиях
d+=f[b]*a,f[b]=d%--g,d/=g--,--b
выполняетсяОсобо надо понять условия, т.к. это все операторы присваивания.
条件是一个,其他的都是向外改写的。
У тебя нет ни одного if, так не пойдет.
Еще раз, нужно разобраться в условиях, это главное. Я никак не пойму, где это найти в учебнике.
读作 "操作员逗号"。:)
Операция последовательного вычисления обозначается запятой (,) и используется для вычисления двух и более выражений там, где по синтаксису допустимо только одно выражение. Эта операция вычисляет два операнда слева направо. При выполнении операции последовательного вычисления, преобразование типов не производится. Операнды могут быть любых типов. Результат операции имеет значения и тип второго операнда. Отметим, что запятая может использоваться также как символ разделитель, поэтому необходимо по контексту различать, запятую, используемую в качестве разделителя или знака операции.
而除了最后一个,其他的都被抛弃了,在哪里呢?
还有。
在SI语言中,赋值也是一种表达式,这种表达式的值就是被赋值的值。
这就是我要说的,很多作业都是表达式,根据它们的位置进行评估,即真/假。
2 C-4: 你把第一个循环中的b-c操作数解释为一个赋值,我不清楚。
Операция последовательного вычисления обозначается запятой (,) и используется для вычисления двух и более выражений там, где по синтаксису допустимо только одно выражение. Эта операция вычисляет два операнда слева направо. При выполнении операции последовательного вычисления, преобразование типов не производится. Операнды могут быть любых типов. Результат операции имеет значения и тип второго операнда. Отметим, что запятая может использоваться также как символ разделитель, поэтому необходимо по контексту различать, запятую, используемую в качестве разделителя или знака операции.
在这种情况下,第二=最后。形式上的定义是递归的,也就是说,第二个运算符可以是复合的(而且又包含一个逗号)。