Question #1 The following program reads integer numbers from a file named numbers.txt . For each number, the program computes the reverse in order to check whether the number is a palindrome number or...



Question #1


The following program reads integer numbers from a file named
numbers.txt. For each number, the program computes the reverse in order to check whether the number is a palindrome number or not. It then reports the results into a file named
Report.txt
(A palindrome is any number whose reverse is also same, e.g., 1221, 23432, 7 , 8 are palindromes, but 23489 is not).


Suppose the file
numbers.txt
contains the following numbers:









373


11


2552


5


3561




numbers.txt


Study the program carefully and answer the below questions;



Hint: you might run the program before starting answering the questions!



  1. Show the output of the program.
    Assume that the file

    txt

    contains the data shown above


























  1. As the program contains nested while loop, determine how many times the following statements will be executed:
    Assume that the file

    txt

    contains the data shown above


    • infile = fopen( "numbers.txt" , "r" );











………………… time(s)




  • printf("%d is read from the file\n" , number);









………………… time(s)




  • digit = temp % 10 ;









………………… time(s)




  • printf("%d is a palindrome number! \n\n", number);









………………… time(s)





  1. How many times does the program check the condition of
    the outer while loop, i.e., status != EOF ?
    Assume that the file

    txt

    contains the data shown above











………………… time(s)

















#include


#include


int main(void){


                int number , reverse = 0 , digit , temp;


                FILE *infile, *outfile;


                int status;


                //open the input file and check if an error occurred


                infile = fopen( "numbers.txt" , "r" ); //open the input file


                if(infile == NULL){


                                printf("Error: File \"numbers.txt\" not found!\n");


                                exit (1);


                }



//open the output file and check if error occurred


                outfile = fopen( "Report.txt" , "w" );


                if(outfile == NULL){


                                printf("Error: File \"Report.txt\" can not be created!\n");


                                exit (1);


                }


                status = fscanf(infile , "%d" , &number) ;
//read first number from the file


                while(status != EOF){
//To read all the numbers in the file


                                printf("%d is read from the file\n" , number);


                                fprintf(outfile , "%8d" , number);



//compute the reverse of the number


                                temp = number ;


                                reverse = 0 ;


                                while(temp != 0){


                                                digit = temp % 10 ;


                                                reverse = reverse * 10 + digit ;


                                                temp = temp/10;


                                }


                                printf("The reverse is: %d \n", reverse);


                                fprintf(outfile , "%8d" , reverse);



//check whether the number is palindrome


                                if(number == reverse){


                                                printf("%d is a palindrome number! \n\n", number);


                                                fprintf(outfile , "\t Palindrome\n" );


                                }


                                else{


                                                printf("%d is not a palindrome number! \n\n", number);


                                                fprintf(outfile , "\t Non-Palindrome\n" );


                                }



//read another number from the file


                                status = fscanf(infile , "%d" , &number) ;


                }



//close the files


                fclose(infile);


                fclose(outfile);



                return 0;


}








  1. What is the benefit of the statement temp = number ; for the program? What will happen if we eliminate it and use the variable number instead of temp in
    the inner while loop?



Hint: Run the program with this modification and check the result!











































  1. What is the purpose of the statement reverse = 0; in the program? What will happen if we didn’t put it before
    the inner while loop?



Hint: Run the program without this this statement and check the result!











































Jun 03, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here