Show the output of the program. Assume that the file txt contains the data shown above 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) 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; } 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! 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?
Question #1
The following
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!
- Show the output of the program. Assume that the file txt contains the data shown above
|
- 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) |
- 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 <stdio.h> #include<stdlib.h> 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; } |
- 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!
|
|
|
|
|
|
|
- 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!
|
|
|
|
|
|
|
Trending now
This is a popular solution!
Step by step
Solved in 6 steps with 2 images