2017-09-13 18 views
-5

次のプログラムでは、temp = numを宣言する代わりにwhile(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; 
} 
+2

デバッガ........... –

+0

あなたのインデントは、あらゆる場所にある、最初のことを修正。 –

+0

C/C++はありません。どの言語を使っていますか? –

答えて

0

あなたが標準出力にバッファをフラッシュします改行文字\nを印刷していないので、あなたのプログラムは、おそらく印刷されていない、また手動でfflush()を流すされています。私はあなたのループの最後にフラッシュするか、実際に新しい行が必要な場合は、printf("\n");

while-loopの開始時にtemp = numを設定することについては、 for (temp = num; temp; temp/=10)などの別のfor-loopを使用してください。一緒にすべてを置く

、あなたのプログラムの末尾には、次のようになります。

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; 
+0

デバッガを使用して問題を解決していただきありがとうございます。 while()でtemp = numを追加すると、それが末尾になる – IronVergil

+0

@IronVergilなぜwhile(temp = num)はあなたのケースで無限ループなのか理解していますか? – yano

関連する問題