Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел - C (СИ)
Формулировка задачи:
Написать программу,
которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел (длина последовательности не ограничена).
Решение задачи: «Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел»
textual
Листинг программы
#include "stdlib.h" #include "locale.h" #include "string.h" int main(void) { setlocale (0,"RUS"); int g=1, z=0, q=0 ; double max,num; char mass[128]; char *word; printf("Поиск наибольшего отрицательного числа\n"); printf("Введите отрицательные числа: "); gets_s ( mass ); word=strtok(mass," "); printf("\n"); while(word) { num=atof(word); if (num>=0) { printf("Введенное число не отрицательное\n"); return 0; } printf("Число № %i = %.3f\n", g, num); word=strtok(0," "); g++; for (;z=0;) { max=num; z++; } if (num>=max) max=num; else; } printf("\nСамое большое число = %.3f\n", max); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
stdlib.h
для функции atof,locale.h
для функции setlocale,string.h
для функции strtok и strlen. - Установка русской локали: setlocale (0,
RUS
); - Объявление переменных: a. g=1 - счетчик чисел; b. z=0 - счетчик отрицательных чисел; c. q=0 - счетчик чисел для сравнения с максимальным числом; d. max — переменная для хранения максимального числа; e. num — текущее число; f. mass[128] — строка для ввода чисел с клавиатуры; g. word — указатель на текущее слово в строке; h. char strtok(char s, const char *delim); — функция для разделения строки на слова и получения текущего слова.
- Вывод сообщения и запрос ввода:
printf(
Поиск наибольшего отрицательного числа\n
); printf(Введите отрицательные числа:
); gets_s ( mass ); - Начало цикла while для обработки каждого числа:
while(word)
{
- Преобразование текущего слова в число: num=atof(word);
- Проверка на положительность числа:
if (num>=0)
{
printf(
Введенное число не отрицательное\n
); return 0; } - Вывод текущего числа и его номера:
printf(
Число № %i = %.3f\n
, g, num); - Увеличение счетчика чисел: g++;
- Счетчик z инициализируется нулем для каждого нового числа.
- Установка max равным текущему числу: max=num;
- Для счетчика q всегда выполняется цикл, но он не влияет на работу программы. }
- Вывод максимального числа:
printf(
\nСамое большое число = %.3f\n
, max); - Конец программы: return 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д