Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора по информатике).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
700.93 Кб
Скачать

48. Операторы цикла do … while Операторы break, continue

Циклы while и for являются циклами с предусловием. Проверка истинности условия осуществляется перед каждой итерацией цикла, поэтому существует вероятность того, что операторы, предусматриваемые циклом, никогда не будут выполнены. В языке С имеется цикл, в котором проверка условия выполняется на выходе из каждой итерации цикла (цикл с постусловием), благодаря чему гарантируется выполнение операторов хотя бы один раз. Это цикл do while.

В листинге 3.3 представлен пример решения предыдущей задачи с использованием цикла с постусловием.

Листинг 3.3

#include <stdio.h>

#define SCALE 0.6214

int main(void){

double kilometres, miles;

printf("Таблица перевода километров в мили\n");

printf("Километры Мили\n");

printf("----------------------\n");

kilometres=1.0;

do {

miles=SCALE*kilometres;

printf("%7.1f %7.2f\n", kilometres, miles);

kilometres+=1.0;

} while (kilometres<=20);

return 0;

}

После служебного слова do (до слова while) в фигурных скобках заключено тело цикла. После выполнения тела цикла осуществляется проверка условия, стоящего справа от слова while в круглых скобках. При выполнении этого условия тело цикла выполняется еще раз. После чего следует новая проверка условия продолжения цикла и т.д. до тех пор, пока условие будет оставаться истинным.

 

#include <stdio.h>

int main(){

int x, i, j;

printf("Введите сторону квадрата: ");

while (1){

if((scanf("%d", &x)==1) && x>=1 && x<=20)

break;

else {

printf("Вводите сторону квадрата от 1 до 20: ");

continue;

}

}

for (i=0; i<x; i++){

for (j=0; j<x; j++)

putchar('*');

putchar('\n');

}

return 0;

}

 

 

 

#include <stdio.h>

int main(){

float dist, top;

while (1) {

printf("Введите количество топлива: (-1 - vyhod): ");

//проверка правильности ввода количества топлива

if ((scanf("%f", &top))!=1) {//проверка правильности ввода количества топлива

while (getchar()!='\n')

continue;

continue;

}

if (top==-1) return 0;

//проверка правильности ввода количества миль

while (1) {

printf("Vvedite proidennyi put': ");

if ((scanf("%f", &dist)!=1)) {

while (getchar()!='\n')

continue;

continue;

}

else break;

}

printf("Rashod raven %.2f gallonov na 100 mil' \n", top/dist*100);

}

return 0;

}

49. Вложенные циклы.

50. Одномерные массивы. Объявление. Инициализация.

Массив является сложным объектом, состоящим из объектов-компонентов, называемых элементами одного и того же типа. Простые определения массива имеют вид

Тип данных x[n1][n2]...[nk]

Где x - идентификатор, определяемый в качестве имени массива, а ni - размерности массива. Массив x называется k-мерным массивом с элементами типа тип данных. Элементы i-го измерения имеют индексы от 0 до ni-1. Тип элемента массива может быть одним из основных типов, типом другого массива, типом указателя (pointer), типом структуры (struct) или типом объединения (union). Хотя элементы массива не могут быть функциями, они могут быть указателями на функции. Ниже приведены некоторые примеры определений массива:

int page[10]; /* одномерный массив из 10

элементов, перенумерованный с 0 до 9 */

char line[81];

float big[10][10], sales[10][5][8]; /*двумерный

массив и трехмерный массив*/

Ссылки на элемент k-мерного массива x делаются с помощью следующего обозначения:

x[i1][i2]...[ik]

где ij - целое выражение, при этом 0<=ij<=nj-1, а nj - максимальное значение j-го индекса массива x. Например:

page[5]

line[i+j-1]

big[i][j]

Указывая только первые p индексов, можно ссылаться на p-мерный подмассив k-мерного массива (p<=k), например,

sales[i] /* ссылка на двумерный подмассив массива

sales */

sales[i][j] /* ссылка на одномерный подмассив */

sales[i][j][k] /* ссылка на элемент массива*/

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