Freak_1208 2021-12-26 12:00 采纳率: 100%
浏览 40
已结题

求帮看一下这个代码为什么运行不出来结果

回归数是一种特殊的n位数,各位数字的n次幂之和恰好等于它自身,如:
153=1^3+5^3+3^3
1634=1^4+6^4+3^4+4^4
54748=5^5+4^5+7^5+4^5+8^5
试编写一个函数short regress(int num)判断num是否是回归数。要求在main函数中调用regress函数寻找所有的3次幂回归数(又称“水仙花数”),并控制每行2个进行输出显示。

#include<stdio.h>
#include<stdlib.h>
short regress(int num)
{
int a,b,c;
a=num%10;
num/=10;
b=num%10;
c=num/10;
if(num==(aaa+bbb+ccc))
return num;
else
return 0;
}
void main(void)
{
int n,num;
for(n=100;n<1000;n++)
{
num=regress(n);
if(num!=0)
{
printf("%d\n",num);
}
}
system("pause");
}

  • 写回答

2条回答 默认 最新

  • 树下等苹果 2021-12-26 13:12
    关注

    代码改成如下:

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>  //添加包含pow函数的头文件
    short regress(int num)
    {
        int a, b, c;
        a = num % 10;
        b = num /10%10;        //不应该改变num的值,你之前的num/=10改变了num的值,这样你在下面的等式会出错
        c = num/100;
        if (num == (pow(a,3) + pow(b, 3) + pow(c,3)))  //使用pow函数
            return num;
        else
            return 0;
    }
    void main(void)
    {
        int n,num;
        for (n = 152; n < 1000; n++)
        {
            num = regress(n);
            if (num != 0)
            {
                printf("%d\n", n);  //应该输出n
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 修改了问题 12月26日
  • 修改了问题 12月26日
  • 展开全部

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码