Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.