Как прервать цикл ввода вещественных чисел, если была введена *? - 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 становится ложным, и цикл прерывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д