m0_74244133 2022-11-08 16:04 采纳率: 86.7%
浏览 50
已结题

用一个函数判断是否为水仙花数

img


用第一个函数判断是否为水仙花数,是则返回1 否则返回0。
用第二个函数打印区间内的水仙花数,

  • 写回答

2条回答 默认 最新

  • 於黾 2022-11-08 16:11
    关注

    c*=a的循环之前,c要变回1呀,要不然越乘越大,乘到最后无限大
    printN的函数,i=m+1改为i=m,i<n改为i<=n

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • honestman_ 2022-11-08 16:13
    关注
    
    //函数声明 
    int narcissistic (int number);
    void PrintN(int m, int n);
    
    int main(){
        int m, n;
        scanf("%d %d", &m, &n);
        
        if( narcissistic (m)) 
        printf("%d is a narcissistic number\n",m);
        PrintN(m, n);
        if( narcissistic(n)) 
        printf("%d is a narcissistic number\n",n); 
        return 0;
    } 
    
    //判断number是否是水仙花数,是返回1,否返回0 
    int narcissistic (int number){
        int t = number;
    //计数
        int count = 1;
    //统计number是几位数
        while(t>9){
            count++;
            t/=10;
        }
    //设置一个返回值,是水仙花则反judge=1;否则judge=0;
        int judge = 0;
        int b = number;
        int sum = 0;
        while(b>0){ 
            int a = b%10;
            b/=10;
            int p = a;
            int j = 1;
            while(j<count){
                p *= a;
                j++;
                }
            sum += p;
            }
            if(sum == number){
            judge = 1;
        }
                
        return judge;
    }
    //打印区间m,n之间所有的水仙花数 
    void PrintN(int m, int n){
        int i;
        for(i = m+1; i<n; i++){
    //函数嵌套调用函数
            if(narcissistic(i)){
                printf("%d\n",i);
            }
        } 
    }
    
    
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 c++图Djikstra算法求最短路径
  • ¥15 Linux操作系统中的,管道通信问题
  • ¥15 ansible tower 卡住
  • ¥15 等间距平面螺旋天线方程式
  • ¥15 通过链接访问,显示514或不是私密连接
  • ¥100 系统自动弹窗,键盘一接上就会
  • ¥50 股票交易系统设计(sql语言)
  • ¥15 调制识别中这几个数据集的文献分别是什么?
  • ¥15 使用c语言对日志文件处理
  • ¥15 请大家看看报错原因,为啥会这样