在下面的程序中我可以声明while(temp = num)而不是声明temp = num;首先 。我确实尝试过程序执行没有任何错误,但没有打印值,我想知道为什么?
#include<stdio.h>
int main()
{
int num, r, sum, temp;
int min, max;
printf("Enter the minimum range: "); // take minimum value to start
scanf("%d", &min);
printf("Enter the maximum range: "); // max value to start`**enter code here**`
scanf("%d", &max);
printf("Palindrome numbers in given range are: ");
for (num = min; num <= max; num++)
{
temp = num;
sum = 0;
while (temp)
{
r = temp % 10;
temp = temp / 10;
sum = sum * 10 + r;
}
if (num == sum)
printf("%d ", num);
}
return 0;
}
答案 0 :(得分:0)
您的程序可能无法打印,因为您没有打印将换行符刷新到stdout的换行符\n
,也不会使用fflush()
手动刷新。我会尝试在循环结束时进行刷新,或者如果你确实需要一个新行,只需用printf("\n");
打印一个新行
关于在while-loop
开头设置temp = num,您可能希望使用其他for-loop
,例如for (temp = num; temp; temp/=10)
。
总而言之,程序的尾部可能如下所示:
for (num = min; num <= max; num++)
{
sum = 0;
for (temp = num; temp; temp/=10)
{
r = temp % 10;
sum = sum * 10 + r;
}
if (num == sum)
printf("%d ", num);
}
fflush(stdout);
return 0;