输入之后完全没反应,没办法调试,不知道哪里错了,dev编译过了,但在别的软件显示编译错误
3条回答 默认 最新
- a5156520 2023-11-08 14:14关注
a在第一个for循环里,计算完没有恢复原值,然后没有判断当前的数的位数是否大于等于3,所以导致结果出错了;
可以在第34行后将a恢复为原值,然后再判断一下当前的数的位数是否大于等于3即可。
修改如下:
参考链接:
https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/2746160#include <stdio.h> #include <math.h> int function(int a,int b); int main(void){ int a,b; scanf("%d %d",&a,&b); // https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/2746160 printf("%d",function(a,b)); return 0; } int function(int a,int b){ int m=0; for(a=a;a<=b;a++){ int n=0; int k=a; while(a!=0){ a/=10; n++; } int j=0; a=k; int sum=0; int i=1; while(j<n){ i=a%10; a=a/10; sum=sum+pow(i,n); j++; } a=k; // 在使用a计算完位数和计算完各数位n次幂后,将a恢复会原值 if(n>=3&&sum==k){ // 判断当前的数a的位数n是否大于等于3 // printf("%d ",k); m++; } } return m; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
- ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
- ¥15 数字信号处理考试111
- ¥100 关于#audobe audition#的问题,如何解决?
- ¥15 allegro17.2生成bom表是空白的
- ¥15 请问一下怎么打通CAN通讯
- ¥20 如何在 rocky9.4 部署 CDH6.3.2?
- ¥35 navicat将excel中的数据导入mysql出错
- ¥15 rt-thread线程切换的问题
- ¥15 高通uboot 打印ubi init err 22