首页 热点资讯 义务教育 高等教育 出国留学 考研考公

10年江苏省计算机二级(春)一道C语言编程题,找不出自己哪里编错了

发布网友 发布时间:2022-04-26 17:53

我来回答

2个回答

热心网友 时间:2023-10-19 05:06

首先你的输入格式与要求不符!
其次
else if (y%1000/100==y%100/10&&y%100/10==y%10&&huiwen(y/1000))
{ a[i][0]=k; a[i][1]=y;i++;}
这段代码有问题吧,什么意思?追问输入格式这个是没有按照要求- -|| 想先看看能不能运行出来所以没管细节
这段代码我想表达的是:如果整数y的最后三位数相等并且去掉这最后三位数后整数y是回文数,那么把满足要求的k和y值存放到a数组中

追答

回文判断程序写错了

优化后的完整代码
int findnum(int n1,int n2,long a[][2])
{
int k,y,i=0;
for(k=n1;k<=n2;k++)
{
y=k*k+k+17;
if ((y%1000)%111==0 && huiwen(y/1000) )
{
a[i][0]=k;
a[i][1]=y;
i++;
}
}
return(i);
}
int huiwen(int n)
{
int sum=0,nn=n;//定义一个nn记录原n
while(n)
{
sum=sum*10+n%10;
n=n/10; //这里n变化了
}
if(sum==nn) //与原值比较
return(1);
else
return(0);
}
void main()
{
int n1,n2,i,num;
long a[20][2];

printf("Input n1 and n2:");
scanf("%d%d",&n1,&n2);

num=findnum(n1,n2,a);
printf("  k    number\n");
for(i=0;i<num;i++)
printf("%d%10d\n",a[i][0],a[i][1]);
}

热心网友 时间:2023-10-19 05:07

没深入看,你的huiwen(int n)函数,sum不会等于n的,返回值一直是0,是不是这里错了追问是的!写错了QAQ 应该再加个中间量temp把n赋给temp的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com