Почему выдается ошибка при вводе текста для обработки с C - PullRequest
0 голосов
/ 09 июля 2020

Я работаю с C и не понимаю, почему код не работает.

Следующий код должен прочитать предложение и распечатать, какой это уровень класса, на основе числа слов.

#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
    
int letter;
int word;
int sentence;
    
   
int main(void)
{
    // prompt the user with the question
    string article = get_string("What's the article?: ");

    // set the length of article
    int n = strlen(article);
    
    // add +1 if the article starts with alphanumeric letter
    if (isalnum(article[0]))
    {
        word = 1;
    }

    // count words
    for (int i = 0; i < n;  i++)
    {
        // count letters
        if (isalnum(article[i]))
        {
            letter++;
        }

        // count words
        if (i < n - 1 && isspace(article[i]) && isalnum(article[i + 1]))
        {
            word++;
        }

        // count sentences
        if (i > 0 && (article[i] == '!' || article[i] == '?' || article[i] == '.') && isalnum(article[i - 1]))
        {
            sentence++;
        }
    }
    // calculate Coleman-Liau index
    int grade = 0.0588 * (100 * letter / word) - 0.296 * (100 * sentence / word) - 15.8;
    
    // debugger
    printf("Letters: %i\n Words: %i\n Sentences: %i\n", letter, word, sentence);
    
    // print result
    if (grade <= 1)
    {
        printf("Before Grade 1\n");
    }
    else if (grade < 16)
    {
        printf("Grade %i\n", grade);
    }
    else
    {
        printf("Grade 16+\n");
    }
}

Для проверки кода я ввел предложение:

One fish. Two fish. Red fish. Blue fish.

И получил ошибку:

    bash: One: command not found

Не знаю, почему команда не найдена?

Ожидаемый ответ должен быть «до 1 степени».

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вам необходимо:

  1. Скомпилировать ваш код в консоли / терминале (см. ответ abelenky или в этой статье для получения дополнительной информации)
    • На этом этапе файл исходного кода, который вы опубликовали, преобразуется в формат, который может быть выполнен на компьютере.
  2. Запуск скомпилированного исполняемого файла в консоли / терминале введя имя исполняемого файла.
  3. При запуске он распечатает What's the article?
  4. После этого вы можете ввести фразу, которую программа должна анализировать

Объяснение ошибки

Когда вы ввели One fish. Two fish. Red fish. Blue fish. в командной строке Bash, ваша программа не была запущена. Bash интерпретирует этот текст как команду, которую вы хотите запустить на вашем компьютере. Сначала он увидел слово One и искал на вашем компьютере внутреннюю команду или файл с именем One, который он мог бы выполнить. Для One нет встроенной команды, а bash не нашел "One" файл для выполнения, поэтому он сообщил об ошибке bash: One: command not found.

0 голосов
/ 09 июля 2020
gcc MyFile.c

./a.out

What's the article?: One fish. Two fish. Red fish. Blue fish.
...