Оператор выбора - C (СИ)
Формулировка задачи:
Помогите, пожалуйста. Только начал изучать Си, и мало что понимаю.
Нужно написать программу "Ввести с клавиатуры четырехзначное число и номер варианта для вычисления. Если введен 1, то вычислить произведение цифр числа. 2 - сумму первой и третьей цифры, 3 - сумма второй и четвертой." Буду очень благодарен.
Решение задачи: «Оператор выбора»
textual
Листинг программы
#include <stdio.h>
#define N 4
int main(void)
{
int ch, mult = 1, i;
char str[N + 1];
printf("N = ");
scanf("%s", str);
printf("choice = ");
scanf("%d", &ch);
/* оператор множественного выбора: */
switch (ch)
{
case 1:
for (i = 0; i < N; i++)
mult *= (str[i] - '0');
printf("Mult: %d\n", mult);
break;
case 2:
printf("Sum 1 and 3 digits: %d\n", str[0] + str[2] - '0' * 2);
break;
case 3:
printf("Sum 2 and 4 digits: %d\n", str[1] + str[3] - '0' * 2);
break;
default:
printf("Incorrect choice\n");
break;
}
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- ch типа int для получения выбора пользователя
- mult типа int и инициализируется единицей, используется для умножения
- i типа int, используется в цикле
- str типа char, массив для хранения строки, инициализируется размером N+1 символов
- Выводится сообщение и призыв к вводу:
N =и последующий ввод строки с помощью функции scanfchoice =и последующий ввод целого числа с помощью функции scanf
- Запускается оператор множественного выбора switch:
- case 1: выполняется цикл for, перемножаются все цифры введенной строки
- case 2: вычисляется сумма цифр 1 и 3 позиции строки
- case 3: вычисляется сумма цифр 2 и 4 позиции строки
- case default: выводится сообщение об ошибке
- Возвращается 0, заканчивается выполнение функции main