Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности отрицательных чисел - 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;