Мой цикл for не работает. Кто-нибудь может мне помочь?
#include <stdio.h> #include <string.h> #include <math.h> int main(void) { char text[100]; printf("Enter text:\n"); scanf("%s",&text[100]); //Loop to count letters words and sentences int letters = 0; int words = 0; int sentences = 0; int n = strlen (text); for (int i=0 ; i<n ;="" i++) { ="" if="" ="" ((text[i]="">= 'A' && text[i] <= 'Z') || (text[i] >= 'a' && text[i] <= 'z')) { letters++; } else if ((i==0 && text[i]!= ' ') ||(i != n-1 && text[i]==' ' && text[i+1]!=' ')) { words++; } else if (text[i] == '.' || text[i] == '!' || text[i] == '?') { sentences++; } } printf("\nLetters: %i\nWords: %i\nSentences: %i\n", letters, words, sentences); float L = (letters / (float) words) * 100; printf("Average No. of letters: %f\n", L); float S = (sentences / (float) words) * 100; printf("Average No. of sentences: %f\n", S); float grade = (0.0588 * L) - (0.296 * S) - 15.8; printf ("G:%f\n",grade); if (grade <= 16 ) { printf("Grade %i\n", (int)grade); } else if (grade > 16) { printf("Grade 16+\n"); } else { printf("Before Grade 1\n"); } }
Что я уже пробовал:
Может ли кто-нибудь сказать, в чем проблема с этим кодом?
Я пробовал использовать цикл for и цикл while, но мой цикл не выполняется. В чем же причина ?
Мой цикл for не выполняется.
Rick York
Я рекомендую вам взглянуть на функции isalpha и isdigit. Они могут позаботиться о большей части вашей условной логики. Есть несколько других связанных функций, которые также могут помочь.
Вы понимаете, что есть и другие формы пунктуации, такие как запятые и двоеточия, верно?
Наконец, я настоятельно рекомендую вам научиться считывать данные из файлов. Это сэкономит вам много времени на вводе текста, так что вы можете потратить его на написание кода и его отладку. Я не могу этого достаточно подчеркнуть. Вы будете рады, что сделали это.