Как прервать цикл ввода вещественных чисел, если была введена *? - C (СИ)
Формулировка задачи:
Как прервать цикл при вводе *? Написал тут, видимо, глупость. Не работает.
Листинг программы
- #include <stdio.h>
- #include <locale.h>
- void main()
- {
- int i;
- float nab[40];
- setlocale(LC_ALL, "Rus");
- printf("Введите набор вещественных чисел. Количество чисел в наборе не должно превышать 40. Концом набора является символ \"*\".\n");
- for (i=0; i<=40 ; i++)
- {
- scanf("%f", &nab[i]);
- if (nab[i]='*')
- break;
- if (i>39)
- {
- printf ("Введено недопустимое количество символов.\n");
- break;
- }
- }
- printf("Ок\n");
- }
Решение задачи: «Как прервать цикл ввода вещественных чисел, если была введена *?»
textual
Листинг программы
- while(scanf("%f", n+i) == 1) // выход если невозможно дрочитать float, в том числе по *
Объяснение кода листинга программы
- В цикле while происходит чтение вещественных чисел с помощью функции scanf().
- Переменная n является указателем на массив, в который считываются числа.
- i - это индекс, который увеличивается на единицу после каждой итерации цикла.
- Функция scanf() возвращает значение 1, если успешно прочитано число, и 0 в противном случае.
- Оператор сравнения ==1 в условии цикла while проверяет, было ли успешно считано число.
- Если ввод числа завершен (введено * или не число), то условие цикла while становится ложным, и цикл прерывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д