水仙花数组,为什么我这个代码运行不了,编译环境是vs c++
#include<stdio.h>
int main()
{
int a[10]={0},i;
int n;
int d1,d2,d3,c;
i=0;
for(n=100;n<999;n++)
{
c=n;
d1=n%10;
n=n/10;
d2=n%10;
n=n/10;
d3=n%10;
if(d1*d1+d2*d2+d3*d3==c)a[i++]=c;
}
printf("水仙花数为:\n");
for(i=0;i<10;i++)
if(a[i]!=0) printf("%d\n",a[i]);
return 0;
}
你一直在循环内部减小n的值,导致for循环始终无法结束
#include<stdio.h>
int main()
{
int a[10]={0},i;
int n;
int d1,d2,d3;
i=0;
for(n=100;n<999;n++)
{
d1=n%10;
d2=n%100/10;
d3=n/100;
if(d1*d1*d1+d2*d2*d2+d3*d3*d3==n)a[i++]=n;
}
printf("水仙花数为:\n");
for(i=0;i<10;i++)
if(a[i]!=0) printf("%d\n",a[i]);
return 0;
}