Как прервать цикл ввода вещественных чисел, если была введена *? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как прервать цикл при вводе *? Написал тут, видимо, глупость. Не работает.
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. void main()
  4. {
  5. int i;
  6. float nab[40];
  7. setlocale(LC_ALL, "Rus");
  8. printf("Введите набор вещественных чисел. Количество чисел в наборе не должно превышать 40. Концом набора является символ \"*\".\n");
  9. for (i=0; i<=40 ; i++)
  10. {
  11. scanf("%f", &nab[i]);
  12. if (nab[i]='*')
  13. break;
  14. if (i>39)
  15. {
  16. printf ("Введено недопустимое количество символов.\n");
  17. break;
  18. }
  19. }
  20. printf("Ок\n");
  21. }

Решение задачи: «Как прервать цикл ввода вещественных чисел, если была введена *?»

textual
Листинг программы
  1. while(scanf("%f", n+i) == 1) // выход если невозможно дрочитать float, в том числе по *

Объяснение кода листинга программы

  1. В цикле while происходит чтение вещественных чисел с помощью функции scanf().
  2. Переменная n является указателем на массив, в который считываются числа.
  3. i - это индекс, который увеличивается на единицу после каждой итерации цикла.
  4. Функция scanf() возвращает значение 1, если успешно прочитано число, и 0 в противном случае.
  5. Оператор сравнения ==1 в условии цикла while проверяет, было ли успешно считано число.
  6. Если ввод числа завершен (введено * или не число), то условие цикла while становится ложным, и цикл прерывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы