Урок 12. Оператор цикла for

Всем привет. Это двенадцаты по счету урок по программированию на Си. И сегодня мы рассмотрим оператор цикла for. For очень похож на оператор цикла while.

Алгоритм работы оператора цикла for:

for

Рассмотрим оператор цикла for на примере:

#include 
int main (){
int a;
for (a=5;a!=10;a++) {
printf ("a=%d\n", a);}
return 0;
}

Результат:

a=5
a=6
a=7
a=8
a=9

Посмотрите еще раз алгоритм работы оператора цикла for.

В нашем случае A это a=5;
B это — a!=10;
D это — a++ (увеличиваем значение на одну единицу);
C это тело цикла — printf («a=%d\n», a);

Программа будет выполняться до тех пор, пока условие (B) истинно. Так как значение переменной a увеличивается на одну единицу каждый раз, то условие при определенном значении станет ложью, и программа завершит свою работу (в нашей программе, в шестой попытке условие стало ложным, так как значение a равнялось десяти).

Давайте теперь выполним задачу посложнее. Напишем программу, которая выводит наибольшее значение из введенных чисел:

#include 
int main () {
int u, n, a, m; 
printf ("Введите количество чисел: ");
scanf ("%d", &n);
printf ("Введите %d чисел: ", n);
scanf ("%d", &m);
for(u = 1; u < n ; u++) {
scanf ("%d\n", &a);
if(a > m) 
m = a;
}
printf ("%d", m);
return 0;
}

Рассмотрим механизм поподробнее начиная с четвертой строки:

1. Объявляем переменные.
2. В пятой строке требуем ввести количество чисел, а в шестой записываем их в переменную n.
3. В седьмой строке требуем ввести n-ое количество чисел, а в восьмой записываем их в переменную m.
4. В девятой строке объявляем оператор цикла for. Присваиваем переменной u значение 1. Если uа.
6. В одиннадцатой строке, если a>m, то присваиваем переменной m значение переменной a. Именно здесь и спрятан алгоритм определения наибольшего значения. Потом оператор цикла for выполняется еще раз, и еще. До тех пор, пока не будут проверены все числа.
7. В четырнадцатой строке выводим наибольшее число.

Механизм заключается в том, чтобы каждый раз сравнивать два числа, наибольший из двух записать в переменную m. А потом эту переменную m стравнить еще раз с a, и записать опять в переменную m. И так до тех пор, пока u не станет равным n.

Д/З:

#include 
 
int main (){
int a;
for (;a!=10;;) {
printf ("a=%d\n", a);}
return 0;
}

Проанализируйте работу программы.