Всем привет. Это двенадцаты по счету урок по программированию на Си. И сегодня мы рассмотрим оператор цикла for. For очень похож на оператор цикла while.
Алгоритм работы оператора цикла for:
Рассмотрим оператор цикла for на примере:
1 2 3 4 5 6 7 |
#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 равнялось десяти).
Давайте теперь выполним задачу посложнее. Напишем программу, которая выводит наибольшее значение из введенных чисел:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#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; } |
Рассмотрим механизм поподробнее начиная с четвертой строки:
- Объявляем переменные.
- В пятой строке требуем ввести количество чисел, а в шестой записываем их в переменную n.
- В седьмой строке требуем ввести n-ое количество чисел, а в восьмой записываем их в переменную m.
- В девятой строке объявляем оператор цикла for. Присваиваем переменной u значение 1. Если um, то присваиваем переменной m значение переменной a. Именно здесь и спрятан алгоритм определения наибольшего значения. Потом оператор цикла for выполняется еще раз, и еще. До тех пор, пока не будут проверены все числа.
- В четырнадцатой строке выводим наибольшее число.
Механизм заключается в том, чтобы каждый раз сравнивать два числа, наибольший из двух записать в переменную m. А потом эту переменную m стравнить еще раз с a, и записать опять в переменную m. И так до тех пор, пока u не станет равным n.
Д/З:
1 2 3 4 5 6 7 8 |
#include int main (){ int a; for (;a!=10;;) { printf ("a=%d\n", a);} return 0; } |
- Проанализируйте работу программы.
Обсуждение на форуме.