Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中查找范围内的回文?_C - Fatal编程技术网

在C中查找范围内的回文?

在C中查找范围内的回文?,c,C,我用C编写了这段代码,以查找给定范围以下的回文数。但程序只输出所有数字的“1”。我找不到我的错误 你能帮忙吗?任何帮助都将不胜感激。谢谢 int IsPalindromic (int n) { int reverse,flag = 0; int temp = n; while( temp != 0 ) { reverse = reverse*10 + temp%10; temp = temp/10; } if ( n == rever

我用C编写了这段代码,以查找给定范围以下的回文数。但程序只输出所有数字的“1”。我找不到我的错误

你能帮忙吗?任何帮助都将不胜感激。谢谢

int IsPalindromic (int n)
{
   int reverse,flag = 0;
   int temp = n;

   while( temp != 0 )
   {   reverse = reverse*10 + temp%10;
       temp = temp/10;  
   }

   if ( n == reverse ) flag=1;
   return flag;
}

 int main() 
 {
   int range,i,count=0;
   printf("Enter range:\n");
   scanf("%d",&range);

  for (i=1;i<range;i++) 
    {
      if (IsPalindromic(i)== 1)
      {
       printf ("%d \n",i);
      count++;
      }
   }
    printf ("Number of Palindromes under %d: %d",range,count);
    return 0;
 }
intispalindromic(intn)
{
int反向,标志=0;
内部温度=n;
while(温度!=0)
{反向=反向*10+温度%10;
温度=温度/10;
}
如果(n==反向)标志=1;
返回标志;
}
int main()
{
整数范围,i,计数=0;
printf(“输入范围:\n”);
扫描频率(“%d”,范围(&R);
对于(i=1;i

reverse = reverse*10 + temp%10;
局部变量
reverse
尚未初始化,因此程序表现出未定义的行为

您定义了两个变量,但仅使用

int reverse,flag = 0;
我建议这样做

int reverse = 0, flag = 0;
在这一行

reverse = reverse*10 + temp%10;
局部变量
reverse
尚未初始化,因此程序表现出未定义的行为

您定义了两个变量,但仅使用

int reverse,flag = 0;
我建议这样做

int reverse = 0, flag = 0;


我不知道你程序的确切数字,但也试着编辑
I我不知道你程序的确切数字,但试着编辑
I但我在第二行初始化了
int reverse=0
。不,你只初始化了
标志
。你定义了两个变量,但只初始化了第二个。编辑了谢谢!我知道初始化
int reverse,flag=0;
,会将两者都初始化为0。代码现在可以工作了。但是我在第二行初始化了
int reverse=0
。不,你只初始化了
flag
。你定义了两个变量,但只初始化了第二个。编辑了答案。谢谢!我知道初始化
int reverse,flag=0;
,将两者都初始化为0。代码现在可以工作了。但是报告是
printf(“在%d下的回文数:%d”,范围,计数);
注意“在下”。是的,完全正确。不知道他是否考虑“在下”作为一个<或者这不是他的问题的答案,这是一个评论。从技术上讲,
0
也应该被算作回文。但是报告是
printf(“回文数低于%d:%d”,范围,计数);
注意“低于”。是的,准确地说。不知道他是否考虑“低于”作为一个<或这不是他的问题的答案,但它是一个评论。从技术上讲,
0
也应该被视为回文。不要编辑代码来修复它。这会让未来的读者感到困惑。按要求回滚到问题。不要编辑代码来修复它。这会让未来的读者感到困惑。按要求回滚到问题。