C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - General Questions (Q.No. 2)
2.
How many times the while loop will get executed if a short int is 2 byte wide?
#include<stdio.h>
int main()
{
int j=1;
while(j <= 255)
{
printf("%c %d\n", j, j);
j++;
}
return 0;
}
Answer: Option
Explanation:
The while(j <= 255) loop will get executed 255 times. The size short int(2 byte wide) does not affect the while() loop.
Discussion:
59 comments Page 1 of 6.
Dhanush said:
1 decade ago
@prem.
We are using character only in printf statement. not in condition. in while(j<=255) j is an integer variable. So in printf statemnt for %c it will print from 1,2.....127,-128,-127.....0 so exactly after 255 times of the execution of the loop. The condition fail and loop will be terminated.
We are using character only in printf statement. not in condition. in while(j<=255) j is an integer variable. So in printf statemnt for %c it will print from 1,2.....127,-128,-127.....0 so exactly after 255 times of the execution of the loop. The condition fail and loop will be terminated.
(1)
Priya said:
7 years ago
int a;
for(a=1;a<=32767;a++)
printf("%d",a);
Why it results in an infinite loop? Please explain.
for(a=1;a<=32767;a++)
printf("%d",a);
Why it results in an infinite loop? Please explain.
(1)
DEEPak said:
8 years ago
In question 1, while loop will execute 256 times. 1 time also for false condition. But the body will execute only 255 times only.
Viplov said:
1 decade ago
J=1 and while (j <= 255).
J start from 1 to 255 and run only 255 times, it goes to 255 because of <= if this sign is only < then it goes to only 1 to 254 and run only 254 times.
J start from 1 to 255 and run only 255 times, it goes to 255 because of <= if this sign is only < then it goes to only 1 to 254 and run only 254 times.
Rahul said:
1 decade ago
#include<stdio.h>
int main()
{
char result[50];
float num = 23.34;
sprintf(result, "%f", num);
printf("\n The string for the num is %s", result);
getchar();
}
This program shows an error output too large. Can anyone tell me why this error is occuring?
int main()
{
char result[50];
float num = 23.34;
sprintf(result, "%f", num);
printf("\n The string for the num is %s", result);
getchar();
}
This program shows an error output too large. Can anyone tell me why this error is occuring?
Vishal Naik said:
1 decade ago
Do it manually for a shorter number, ex while(j <= 3), you will get the answer as 3. Similarly when while(j <= 255), Answer is 255.
Ashish said:
1 decade ago
Since the int is 2 bytes here, wouldn't it become zero and the loop continue indefinitely. Please Help to clear this doubt.
Ankit jain said:
1 decade ago
%c will print the character according to ASCII values and %d print the corresponding number.
Ritesh yadav said:
1 decade ago
Do it for j<=60, you will find difference. Actually %c shows ascii characters and %d is a decimal value of it. But I am still confused for j<=255, whether this loop will be executed infinite or 255 times only.
Akash said:
1 decade ago
I can't understand because of %c and j two times print.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers