大家看这两个程序,只是数据不同,但是出现死循环
第一个
#include<stdio.h>
void main()
{int i,j,k,n;
for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("n=%d\n",n);
}
}这个是正常的。
第二个#include<stdio.h>
void main()
{
int a,b,c,i;
for(i=100;100<i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i-a*100-b*10;
if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)
printf("%d",i);
}
}谁能给我解释一下?越清楚越好!在这里先说声谢谢啊
#include<stdio.h>
void main()
{int i,j,k,n; 可以理解为 I,J,K,N是整数 int是取整函数
for(n=100;n<1000;n++) 循环开始。给N一个初始值100,如果N>=1000时,跳出循环,N++就是n=n+1
{i=n/100; 第一次循环 此时n=100 赋值 i=n/100=100/100=1
j=n/10-i*10; j=100/10-0*10=10
k=n%10; k=100%10=10
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 你自己算算吧。。。一个公式,如果左边等于右边的值
printf("n=%d\n",n); 向函数printf()传值
}
}这个是正常的。
第二个#include<stdio.h>
void main()
{
int a,b,c,i;
for(i=100;100<i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i-a*100-b*10;
if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)
printf("%d",i); 道理一样。。。就看函数printf()接受数据,如何处理的
}
}
大致意思就是这样