Попытка скомпилировать удобочитаемость pset2 из cs50 .. Выдает те же ошибки «использование необъявленного идентификатора» будет признателен за любые предложения - PullRequest
0 голосов
/ 26 мая 2020

Пытаюсь скомпилировать читабельность pset2 из cs50 .. Понятия не имею что не так. Показывает мне много ошибок. Пытался исправить, но дает новые. Начали думать, что проблема может быть совсем в другом. Так что я застрял и не могу найти способ это исправить. Буду признателен за любую помощь! Спасибо!

    int main(void)
      {
      string text = get_string("Text:");
      int letterCount = 0;
      int wordCount = 0;
      int sentCount = 0;
      for(int n = 0; len = strlen(text); n < len; n++)
      {
        if(isalpha(text[n]))
           letterCount++;
        if ((n == 0 && text[n] != ' ') || (n != len - 1 && s[n] == ' ' && s[n +1] != ' '))
           wordCount++;
        if ((text[n] == '!') || (text[n] == '.') || (text[n] == '?'))
           sentCount++;
      }

      //Average number of letters per 100 words
      float avLetters = (letterCount / (float) wordCount) * 100;
      //Average number sentences per 100 words
      float avSent = (sentCount  / (float) wordCount) * 100;
    // find the index
    int Grade = round(0.0588 * avLetters  - 0.296 * avSent - 15.8);

      if(Grade < 16)
           printf("Grade %i\n", Grade);
      else if ( Grade >= 16)
           printf("Grade 16+");
      else
           printf("Before Grade 1");

}



Readability.c:12:18: error: use of undeclared identifier 'len'
  for(int n = 0; len = strlen(text); n < len; n++)
                 ^
Readability.c:12:42: error: use of undeclared identifier 'len'
  for(int n = 0; len = strlen(text); n < len; n++)
                                         ^
Readability.c:12:45: error: expected ')'
  for(int n = 0; len = strlen(text); n < len; n++)
                                            ^
Readability.c:12:6: note: to match this '('
  for(int n = 0; len = strlen(text); n < len; n++)
     ^
Readability.c:12:47: error: use of undeclared identifier 'n'
  for(int n = 0; len = strlen(text); n < len; n++)

            ^

1 Ответ

0 голосов
/ 27 мая 2020

Я исправил ваши ошибки компиляции, вы можете сравнить их с вашей версией, чтобы увидеть, что пошло не так. вот ссылка для сборки и запуска фиксированного кода.

#include<cs50.h>

int main(void) {
  string text = get_string("Text:");
  int letterCount = 0;
  int wordCount = 0;
  int sentCount = 0;
  for (int n = 0, len = strlen(text); n < len; n++) {
    if (isalpha(text[n]))
      letterCount++;
    if ((n == 0 && text[n] != ' ') ||
        (n != len - 1 && text[n] == ' ' && text[n + 1] != ' '))
      wordCount++;
    if ((text[n] == '!') || (text[n] == '.') || (text[n] == '?'))
      sentCount++;
  }

  // Average number of letters per 100 words
  float avLetters = (letterCount / (float)wordCount) * 100;
  // Average number sentences per 100 words
  float avSent = (sentCount / (float)wordCount) * 100;
  // find the index
  int Grade = round(0.0588 * avLetters - 0.296 * avSent - 15.8);

  if (Grade < 16)
    printf("Grade %i\n", Grade);
  else if (Grade >= 16)
    printf("Grade 16+");
  else
    printf("Before Grade 1");
}
...