Как прервать цикл ввода вещественных чисел, если была введена *? - 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, в том числе по *

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

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

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


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

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

10   голосов , оценка 3.6 из 5
Похожие ответы