如何用c程序循环语句做

 

供参考:

//三位数  水仙花数
#include<stdio.h>

int main()
{
    int i,s,n;
    for(i=100;i<1000;i++){
        n=i;s=0;
        while(n){
           s+=((n%10)*(n%10)*(n%10));
           n/=10;
        }
        if(s==i)printf("%d\n",i);
    }
    
    return 0;
}



//求10--100000中每位数字之积大于该数的所有数
//没有符合上述条件的数
#include<stdio.h>

int main()
{
    int i,n,m;
    for(i=10;i<100000;i++){
        n=i;m=1;
        while(n){
             m *= (n%10);
             n /= 10;
        }
        if(m > i)printf("%d,m=%d\n",i,m);
    }
    
    return 0;
}

 

两个题目各自封装成了一个函数,代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
//第1题
void fun1()
{
	int i;
	int d,tmp;
	int sum;
	for (i= 100;i<=999;i++)
	{
		sum = 0;
		tmp = i;
		while(tmp>0)
		{
			d = tmp %10;
			sum += (d*d*d);
		}
		if(sum == i)
			printf("%d ",i); //水仙花数
	}
}
//第2题
void fun2()
{
	int i;
	int d,tmp;
	int jj;
	for (i = 10; i< 100000;i++)
	{
		jj = 1;
		tmp = i;
		while(tmp> 0)
		{
			d = tmp%10;
			jj *= d;
			tmp /= 10;
		}
		if(jj > i)
			printf("%d ",i);
	}
}

int main()
{
	fun1();
	fun2();
	return 0;
}