2025-03-02 02:18:46
编译的错误你看了吗?printf这句怎么错了?定义bool是因为没有这样的数就显示no,这个倒无所谓,我就是想知道编译出的错误死怎么错的,怎么改呢?
printf("%d",i);
首先就应该这样吧,我不明白你为什么偏偏要这么复杂呢,就为了用false和true更能见名知意?还有你既然是求水仙花数,水仙花数是3位数吧,那你可以就100~999之间for循环判断就好啊,为什么要自己输入呢,0是假非零就是真,为什么一定要宏定义呢,是有要求吗
若你偏要这样做,你可以看看我下面的代码:
#include
#define bool int
#define true 1
#define false 0
main(){
int m,n,a[3],i;
bool f=false;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++){
a[0]=i%10;
a[1]=(i/10)%10;
a[2]=i/100;
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i){
f=true;
printf("%d ",i);
}
}
if (f==false) printf("no");
getch();//这是win-tc特有的,你不用win-tc就删了这条语句。
}
是按照你的改的。因为是我用的是WIN-TC,所以后面有getch(),你不用的话就删掉。