在C中查找范围内的回文?
我用C编写了这段代码,以查找给定范围以下的回文数。但程序只输出所有数字的“1”。我找不到我的错误 你能帮忙吗?任何帮助都将不胜感激。谢谢在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
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
也应该被视为回文。不要编辑代码来修复它。这会让未来的读者感到困惑。按要求回滚到问题。不要编辑代码来修复它。这会让未来的读者感到困惑。按要求回滚到问题。