Примеры программ к Лабораторным работам N3 "Форматированный ввод/вывод и циклы" и
N4 "Операторы условных переходов, циклы и массивы"
/* animals.c -- использование оператора switch */
#include <stdio.h>
#include <ctype.h>
int main (void)
{
char ch;
printf("Дaйтe мне букву алфавита, и я укажу вам ");
printf("название животного,\nначинающееся с этой буквы.\n");
printf("Bвeдитe букву или # для завершения.\n");
while ((ch = getchar()) != '#')
{
if('\n' == ch)
continue;
if (islower(ch)) /* только строчные буквы */
switch (ch){
case 'a':
printf("alligator, вид крокодила\n");
break;
case 'b':
printf("bear, медведь\n");
break;
case 'c':
printf("cat, кошка\n");
break;
case 'd':
printf("dog, собака\n");
break;
case 'e':
printf("elephant, слон\n");
break;
case 'f':
printf("flamingo, птица\n");
break;
default:
printf("Этo трудная задача!\n");
} /* конец оператора выбора */
else
printf("Распознаются только строчные буквы.\n");
while (getchar() != '\n')
continue; /* пропустить оставшуюся часть входной строки */
printf("Bвeдитe следующую букву или # для завершения.\n");
} /* конец цикла while */
printf("Пpoгpaммa завершена.\n");
return 0;
}
/* colddays.c -- вычисляет процент случаев, когда температура опускается ниже нуля */
#include <stdio.h>
int main (void)
{
const int FREEZING = 0;
float temperature;
int cold_days = 0;
int all_days = 0;
printf("Bвeдитe список дневных температур.\n");
printf("Используйте шкалу Цельсия; для завершения введите q.\n");
while (scanf("%f", &temperature) == 1)
{
all_days++;
if (temperature < FREEZING)
cold_days++;
}
if (all_days != 0)
printf("%d - общее количество дней: %.1f%% с температурой ниже нуля.\n",
all_days, 100.0 * (float) cold_days / all_days);
if (all_days == 0)
printf("Дaнныe не введены!\n");
return 0;
}
/* cypher1.c -- вносит изменения во входные данные, сохраняя пробелы */
#include <stdio.h>
#define SPACE ' ' /* кавычка, пробел, кавычка */
int main (void)
{
char ch ;
ch = getchar(); /* читать символ */
while (ch != '\n') /* если это не символ конца строки */
{
if (ch == SPACE) /* оставить пробел нетронутым */
putchar (ch); /* символ не меняется */
else
putchar(ch + 1); /* изменить другие символы */
ch = getchar(); /* взять следующий символ */
}
putchar(ch); /* печатать символ новой строки */
return 0;
}
/* for_cube.c -- использование цикла for для построения таблицы кубов целых чисел */
#include <stdio.h>
int main (void){
int num;
printf(" n n в кубе\n");
for (num = 1; num <= 6; num++)
printf("%5d%5d\n", num, num * num* num);
return 0;
}
/* sum_arr.c -- суммирует элементы массива */
#include <stdio.h>
#define SIZE 10
int main (void) {
int marbles[SIZE] = {20, 10, 5, 39, 4, 16, 19, 26, 31, 20};
long answer = 0;
for (int i=0; i < SIZE; i++) answer += marbles[i];
printf("Oбщая сумма элементов marbles равна %ld.\n", answer);
return 0;
}
/* summing.c -- суммирует целые числа, вводимые в интерактивном режиме */
#include <stdio.h>
int main (void){
long num;
long sum = 0L; /* инициализация переменной sum нулем */
int status;
printf("Bвeдитe целое число для последующего суммирования");
printf(" (или q для завершения программы): ");
status = scanf("%ld", &num);
while (status == 1) /* == обозначает равенство */
{
sum = sum + num;
printf("Bвeдитe следующее целое число (или q для завершения программы):");
status = scanf("%ld", &num);
}
printf("Сумма введенных целых чисел равна %ld.\n", sum);
return 0;
}