Всем привет. Это двенадцаты по счету урок по программированию на Си. И сегодня мы рассмотрим оператор цикла for. For очень похож на оператор цикла while.
Алгоритм работы оператора цикла 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;
}
Проанализируйте работу программы.