【发布时间】:2023-03-12 00:22:01
【问题描述】:
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int n;
unsigned long series[100], beck[100];
int j=0, num=0,temp=0,notflin=0;
printf("Please enter the length_of the series :\n");
printf("Please enter the series :\n");
scanf("%u",&n);
for(unsigned int f=0; f<n; f++)
{ series[f]=0;
scanf("%lu",&series[f]);
}
printf("check");
printf("%u",n);
for(unsigned int i=(n-1); i>=0 ; i--)
{
num=0;
num=series[i];
temp=0;
if (num)
{
while((double) num/10!=0)
{
temp*=10;
temp+=(num%10);
num/=10;
}
}
beck[j]=0;
beck[j]=temp;
j++;
}
unsigned int s=0,d=0;
while(1)
{
unsigned long num1=0, number=0;
number=(series[n-1-d]%10);
num1=(beck[n-1-s]%10);
if (number!=num1)
{
notflin=1;
break;
}
series[n-1-d]/=10;
beck[n-1-s]/=10;
if(beck[n-1-s]==0)
s++;
if(series[n-1-d]==0)
d++;
if (d==(n-1)||s==(n-1))
break;
}
printf(notflin==0? "Yes\n":"No\n");
return 0;
}
我尝试将输入输入到unsigned long beck[],这样最后一个索引中的数字将成为unsigned long series[]中的第一个,然后比较索引中的数字。
当我尝试运行代码时,它会卡住。有什么问题?
【问题讨论】:
-
顺便说一句,这叫做回文。
-
您需要提供有关错误的更多信息。
-
for(unsigned int i=(n-1); i>=0 ; i--)- 嗯。 unsigned int 将总是 大于或等于零。也许for(unsigned int i=n; i--;)会做你想做的事。
标签: c palindrome