大一新生 求大佬帮忙看看这个c语言哪里出错🌚
顺便教教我怎么做 谢谢
#include<stdio.h>
int no_of_digits(int x)
{
int w,n;
for(w=10,n=1;x/w==0;w*=10)
n=n+1;
return n;
}
int power(int x, int y)
{
int i,num=1;
for(i=1;i<y+1;i++)
num=num*x;
return num;
}
int is_narciss(int x)
{
int i,n,sum;
sum=0;
n=no_of_digits(x);
for(i=1;i<=n;i++)
{
sum+=power(x%10,n);
x/=10;
}
return sum;
}
int main(void)
{
int x,s;
for(x=0;x<1000000;x++)
{
s=is_narciss(x);
if(s==x)
printf("%d\n",s);
}
return 0;
}
c语言水仙花数的求解?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2021-10-26 14:50关注
有两处错误:
第一处:for(w=10,n=1;x/w==0;w*=10) 这里应该是 x/w != 0
第二处:sum+=power(x%10,n); //这里应该是 sum+=power(x%10,3); 水仙花是各位数的立方和,所以power的第二个参数是3。
完整代码如下,如有帮助,请帮忙采纳一下,谢谢。#include<stdio.h> int no_of_digits(int x) { int w,n; for(w=10,n=1;x/w!=0;w*=10) //修改1 n=n+1; return n; } int power(int x, int y) { int i,num=1; for(i=1;i<y+1;i++) num=num*x; return num; } int is_narciss(int x) { int i,n,sum; sum=0; n=no_of_digits(x); for(i=1;i<=n;i++) { sum+=power(x%10,3); //修改2 x/=10; } return sum; } int main(void) { int x,s; is_narciss(123); for(x=0;x<1000000;x++) { s=is_narciss(x); if(s==x) printf("%d\n",s); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 没输出运行不了什么问题
- ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
- ¥15 点云密度大则包围盒小
- ¥15 nginx使用nfs进行服务器的数据共享
- ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
- ¥15 51嵌入式入门按键小项目
- ¥30 海外项目,如何降低Google Map接口费用?
- ¥15 fluentmeshing
- ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
- ¥15 盘古气象大模型调用(python)