Hi I have the following code for an assignment that reads li
Hi,
I have the following code for an assignment that reads lines then output the number of lines/words/and words per line. However, the instructor said we cannot use global variables, thus everything has to be in functions. Can someone help with converting it into function to avoid global variable declaration?
thanks,
#include <stdio.h>
 #include <stdlib.h>
int main()
 {
     //Array to hold words per line
     int wordsPerline[50];
    //Variables to hold individual counts
     int lines = 0, words = 0, totalWords = 0, i;
char ch;
printf(\"Enter the poem: \ \");
    //Reading input from user
     while((ch=getchar()) != \'.\')
     {
         //New line character
         if(ch==\'\ \')
         {
             //If there are no words
             if(words != 0)
                 words++;
             //Updating total words
             totalWords += 1;
             //Storing value in array
             wordsPerline[lines] = words;
             //Incrementing number of lines
             lines ++;
             //Reset the word count
             words = 0;
         }
        //Spaces and tab
         if(ch ==\' \' || ch==\'\\t\')
         {
             //Updating total words
             totalWords += 1;
             //Updating words
             words ++;
         }
     }
    //Printing results
     if(totalWords == 1)
         printf(\"\  %d word on \", totalWords);
     else
         printf(\"\  %d words on \", totalWords);
    if(lines == 1)
         printf(\" %d line \ \ \", lines);
     else
         printf(\" %d lines \ \ \", lines);
    //Printing words per line
     for(i=0; i<lines; i++)
         printf(\" %d \", wordsPerline[i]);
    printf(\"\ \");
     return 0;
 }
Solution
#include <stdio.h>
 #include <stdlib.h>
void readF()
 {
 //Array to hold words per line
 int wordsPerline[50];
 //Variables to hold individual counts
 int lines = 0, words = 0, totalWords = 0, i;
 char ch;
 printf(\"Enter the poem: \ \");
 //Reading input from user
 while((ch=getchar()) != \'.\')
 {
 //New line character
 if(ch==\'\ \')
 {
 //If there are no words
 if(words != 0)
 words++;
 //Updating total words
 totalWords += 1;
 //Storing value in array
 wordsPerline[lines] = words;
 //Incrementing number of lines
 lines ++;
 //Reset the word count
 words = 0;
 }
 //Spaces and tab
 if(ch ==\' \' || ch==\'\\t\')
 {
 //Updating total words
 totalWords += 1;
 //Updating words
 words ++;
 }
 }
 //Printing results
 if(totalWords == 1)
 printf(\"\  %d word on \", totalWords);
 else
 printf(\"\  %d words on \", totalWords);
 if(lines == 1)
 printf(\" %d line \ \ \", lines);
 else
 printf(\" %d lines \ \ \", lines);
 //Printing words per line
 for(i=0; i<lines; i++)
 printf(\" %d \", wordsPerline[i]);
 printf(\"\ \");
 }
 int main()
 {
 readF();
 return 0;
 }
=====================================
Output:
akshay@akshay-Inspiron-3537:~/Chegg$ gcc readfile.c
 akshay@akshay-Inspiron-3537:~/Chegg$ ./a.out
 Enter the poem:
 Hi i am john
 how are you?
 .
7 words on 2 lines
4 3



