栎873 2021-12-27 09:51 采纳率: 40%
浏览 18

为什么我这个判断自守数的函数后面打印的时候只能打印出一个1?

#include<stdio.h>
int pd(int n){
int j,a,m,i,count=1;
m=n*n;
int b=n;
do{
n=n/10;
i++;
}while(n!=0);
a=m-b;
for(j=1;j<=i;j++){
if(a%10!=0) return 0;
a=a/10;
}
return 1;
}
int main(void){
int n,i=0,a;
scanf("%d",&n);
for(i=1;i<n;i++){
if(a!=0) printf("%d\n",i);
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-27 14:19
    关注

    修改见注释处,供参考:

    #include<stdio.h>
    int pd(int n) {
        int j, a, m, i=0;//修改 count=1
        m = n * n;
        int b = n;
        do {
            n = n / 10;
            i++;
        } while (n != 0);
        a = m - b;
        for (j = 1; j <= i; j++) {
            if (a % 10 != 0) return 0;
            a = a / 10;
        }
        return 1;
    }
    int main(void) {
        int n, i = 0, a;
        scanf("%d", &n);
        for (i = 1; i < n; i++) {
            a = pd(i);                //修改
            if (a != 0) printf("%d\n", i);
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月27日

悬赏问题

  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp