当流氓遇上无赖 2015-04-17 02:17 采纳率: 0%
浏览 1765

为啥找找守形数总是多一个

#include
#include
int main()
{
char buf1[4], buf2[4];
for (int i = 1000; i < 1111; i++)
{
int a = 0, b = 3;
int n = 9*i;
int c = i;
while (c!= 0)
{
buf1[a++] = c % 10 ;
c = c / 10;
}
while (n != 0)
{
buf2[b--] = n % 10 ;
n = n / 10 ;
}
if (strcmp(buf1, buf2) == 0)
printf("%d\n", i);
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • Heart09 2015-04-17 02:43
    关注

    首先你确定你是在找守形数?
    那个9*i是什么意思?
    b=3又是什么意思?
    还有buf1,buf2怎么没初始化?
    在使用strcmp之前,查查
    strcmp的结束判断是怎么做的?

    你的意思应该是 n=i*i;
    while(n!=0)中应该是取最低三位吧?而且你这个三位是不是因为b=3 这个设置,放颠倒了?
    而且这里的b--,如果n=i*i时候,会不会导致b为负数,向前越界?
    哎?怎么会是最低三位?1000不应该是4位吗?

    最后,为什么不这样写:
    n=i*i;
    if(i == (n%10000)) 则为守形数并输出。

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置