Примеры программ к Лабораторным работам 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;
}