Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

Void main(void)

{

float m[LINE] = {5.1, 1.2, 7.5, 3.4, 12.0, 9.2, 6.7, 2.3, 4.5, 10.1};

int i;

float sred=0;

for(i=0; i<LINE; i++) sred+=m[i];

sred/=LINE;

printf("Среднее арифметическое равно %3.1f",sred);

}

// Пример 5.4.

// Найти сумму диагональных элементов матрицы 3х3

#include <stdio.h>

Void main(void)

{

int m[3][3] = {{5, 1, 7}, {3, 12, 9}, {2, 4, 10}};

int i,j,sum;

sum=0;

for(i=0; i<3; i++) sum+=m[i][i];

printf("Сумма диагональных элементов матрицы равна %5d\n",sum);

}

В качестве управляющей переменной не обязательно использовать целочисленный счетчик (см. пример 5.5):

// Пример 5.5.

// Примеры работы циклов for и do...while с символьной переменной

#include <stdio.h>

Void main(void)

{

unsigned char ch;

// Вывод букв латинского алфавита

for (ch='A'; ch<= 'Z'; ch++) printf("%c\n",ch);

do

{

printf("Для выхода нажмите Y ");

scanf("%c",&ch);

} while(ch!='Y');

}

Цикл while

Цикл while используется, когда неизвестно, какое число раз должен выполняться оператор внутри цикла, например, чтение из файла до конца файла.

Основная форма оператора while:

while (условие) оператор;

Это цикл с предусловием и читается так: пока условие “истинно”, выполняй оператор (см. пример 3.7). Оператор может состоять из группы операторов, заключенных в фигурные скобки. Внутри оператора должны находиться выражения, влияющие на условия (см. примеры 5.6 и 5.7):

// Пример 5.6.

// Вычислить 2 в степени k, цикл while

#include <stdio.h>

Void main(void)

{

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>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]