啊哈c水仙花数更进一步第2题,有错吗

原问题:啊哈c水仙花数更进一步第2题,有错吗
分类:编程开发 > 最后更新时间:【2017-07-26 21:32:14】
问题补充:

为什么显示有BUG???

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

int main()

{

int a[8],x,i;

scanf("%d",&x);

if (x/1>0 || x/1<=9)

{

a[1]=x/1;

printf("%d",a[1]);

}

else;

if (x/10>0 || x/10<=9)

{

a[1]=x%10;

a[2]=x/10;

i=a[1]+a[2];

printf("%d",i);

}

else;

if (x/100>0 || x/100<=9)

{

a[1]=x%10;

a[2]=x/10%10;

a[3]=x/100;

i=a[1]+a[2]+a[3];

printf("%d",i);

}

else;

if (x/1000>0 || x/1000<=9)

{

a[1]=x%1000%100%10;

a[2]=x/10%100%10;

a[3]=x/100%10;

a[4]=x/1000;

i=a[1]+a[2]+a[3]+a[4];

printf("%d",i);

}

else;

if (x/10000>0 || x/10000<=9)

{

a[1]=x%10000%1000%100%10;

a[2]=x%10000%1000%100/10;

a[3]=x%10000%1000/100;

a[4]=x%10000/1000;

a[5]=x/10000;

i=a[1]+a[2]+a[3]+a[4]+a[5];

printf("%d",i);

}

else;

if (x/100000>0 || x/100000<=9)

{

a[1]=x%100000%10000%1000%100%10;

a[2]=x%100000%10000%1000%100/10;

a[3]=x%100000%10000%1000/100;

a[4]=x%100000%10000/1000;

a[5]=x%100000/10000;

a[6]=x/100000;

i=a[1]+a[2]+a[3]+a[4]+a[5]+a[6];

printf("%d",i);

}

else;

if (x/1000000>0 || x/1000000<=9)

{

a[1]=x%1000000%100000%10000%1000%100%10;

a[2]=x%1000000%100000%10000%1000%100/10;

a[3]=x%1000000%100000%10000%1000/100;

a[4]=x%1000000%100000%10000/1000;

a[5]=x%1000000%100000/10000;

a[6]=x%1000000/100000;

a[7]=x/1000000;

i=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7];

printf("%d",i);

}

else;

if (x/10000000>0 || x/10000000<=9)

{

a[1]=x%10000000%1000000%100000%10000%1000%100%10;

a[2]=x%10000000%1000000%100000%10000%1000%100/10;

a[3]=x%10000000%1000000%100000%10000%1000/100;

a[4]=x%10000000%1000000%100000%10000/1000;

a[5]=x%10000000%1000000%100000/10000;

a[6]=x%10000000%1000000/100000;

a[7]=x%10000000/1000000;

a[8]=x/10000000;

i=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8];

printf("%d",i);

}

system("pause");

return 0;

}

最佳答案

你这个是求水仙花数?

程序完全不对啊(只是没有语法错而已)

另外你程序中的

else; //这个分号有问题的,加了以后逻辑上就不是你要求的了

最后,这个完全可以用循环做,加这个多个判断没必要的

  • 追答:
    还有一个大BUG,C的下标是从0开始的(基础)int a[8]只能用a[0]到a[7]你的 a[8]=x/10000000; //下标溢出,程序可能崩溃的
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    6

    分享到:

    其他回答

    暂无其它回答!

      推荐