Теперь поговорим немного о такой пренеприятнейшей вещи как зацикливание. Зацикливание - это когда программа постоянно выполняет тело цикла и не может из него выйти. Причиной зацикливания всегда является программист. Надо всегда внимательно следить за тем, чтобы работа операторов как-то влияла на условие.
Напоследок напишем одну маленькую программку.С использованием циклов do-while и while.
Пусть требуется написать программу которая принимает на входе положительное натуральное число, а на выходе выдает сумму цифр этого числа. При этом, надо запретить пользователю вводить отрицательные числа. (защита от дурака).
Сначала напишем основную часть программы.
Считаем число и посчитаем сумму его цифр.
Листинг 9.4
#include <stdio.h>
int main()
{
int A, sum=0;
printf("Vvedite chislo:");
scanf("%d",&A); //считываем число
//начинаем последовательно получать каждую последнюю цифру числа.
while (A>0)
{
sum=sum+A%10;
A= A/10;
}
printf("summa chifr etogo chisla: %d\n", sum);
return(0);
}
Эта программа работает. Теперь добавим в неё так называемую "защиту от дурка". Чтобы пока не введешь правильные данные,программа не будет работать. Для этого используем цикл do-while.И будем повторить ввести ввод до тех пор, пока не будет введено положительное число.
Получим следующий код.
Листинг9.5
#include <stdio.h>
int main()
{
int A, sum=0;
do {
printf("Vvedite chislo:");
scanf("%d",&A); //считываем число
} while(A<=0);
while (A>0){
sum=sum+A%10;
A= A/10;
}
printf("summa chifr etogo chisla: %d\n", sum);
return(0);
}
На этом сегодня всё. Домашнего задания к этому уроку не будет. Так как мне надо разобраться с той кучей вопросов, которые накопились за это время в комментариях.