КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вложенные циклы. printf(Для выхода нажмите Y );
Do Void main(void) Void main(void) Цикл while Do { printf("Для выхода нажмите Y "); scanf("%c",&ch); } while(ch!='Y'); } Цикл while используется, когда неизвестно, какое число раз должен выполняться оператор внутри цикла, например, чтение из файла до конца файла. Основная форма оператора while: while (условие) оператор; Это цикл с предусловием и читается так: пока условие “истинно”, выполняй оператор (см. пример 3.7). Оператор может состоять из группы операторов, заключенных в фигурные скобки. Внутри оператора должны находиться выражения, влияющие на условия (см. примеры 5.6 и 5.7):
// Пример 5.6. // Вычислить 2 в степени k, цикл while #include <stdio.h> { int i,k; unsigned x,y; i=10; // Другой вариант записи k=1; y=1; x=2; // k=0; y=1; x=2; while(k<i) // while(++k<i) y*=x; { y=y*x; k++; printf(" 2 в степени %d равно %5u \n",(k-1),y); } }
// Пример 5.7. //Двоичный поиск в отсортированном массиве #include <stdio.h> int binary_search(int array[], int value, int size) { int found=0; int high=size, low=0, mid; mid=(high+low)/2; printf("\n Поиск значения %d\n",value); while((!found) && (high>=low)) { printf("Индексы: Нижний %d Текущий %d Верхний %d\n", low,mid,high); if (value==array[mid]) found=1; else if (value < array[mid]) high=mid-1; else low=mid+1; mid=(high+low)/2; } return((found)? Array[mid]: -1); } void main(void) { int array[100],i;
for(i=0; i< 100; i++) array[i]=i; printf("Результат поиска %d\n",binary_search(array,33,100)); printf("Результат поиска %d\n",binary_search(array,75,100)); printf("Результат поиска %d\n",binary_search(array,1,100)); printf("Результат поиска %d\n",binary_search(array,1001,100)); } Цикл do... while Основная форма оператора следующая: do { последовательность операторов; } while (условие); Это цикл с постусловием, то есть вначале выполняется последовательность операторов, а затем проверяется условие (см. пример 5.5). Какое бы условие не стояло в конце цикла while, последовательность операторов в теле цикла один раз выполняется обязательно. Пример 5.8 “Угадай число” показывает работу цикла do...while:
// Пример 5.8. // Пример цикла do...while “Угадай число” #include <stdio.h> #include <stdlib.h> #include <time.h> { int s, x, n=0; randomize(); // Инициализация генератора случайных чисел s=random(100)+1; // Генерирует случайные числа от 1 до 100 { printf("Введите число от 1 до 100: "); scanf("%d",&x); n++; if (s<x) printf("Заданное число меньше\n"); if (s>x) printf("Заданное число больше\n"); } while(s-x); // Выход из цикла, когда (s-x) равно нулю printf("Вы угадали число!\n"); printf("На угадывание затратили %d попыток\n",n); } Когда один цикл находится внутри другого, то говорят, что это вложенные циклы. Они часто используются при работе с матрицами (см. примеры 5.9 и 5.10):
// Пример 5.9. // Найти сумму элементов второго столбца матрицы 3х3 #include <stdio.h>
Дата добавления: 2014-12-27; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |