1、输出1000之内的全部“完数”,要求每行输出5个,并统计完数的个数。一个数如果恰好等于它的因子之和,就称其为完数。
#include int main() { int counter=0;//计数器 int record=0;//记录完数个数 int x,i; for(x=2;x<=1000;x++){//遍历所有的数去判断完数 int sum=0;//每输出一个完数,sum的值归零 for(i=1;i//不包括本身的因子 if(x%i==0){ sum+=i;//统计所有因子的和 } } //判断完数并输出 if(sum==x) {//判断完数 printf("%d ",x); counter++;//记录每行的完数 record++;//每输出一个完数就就记录一次 if(counter==5){ printf("\n");//每输出5个数就换行 counter=0;//重新计数 } } } printf("共计%d个完数",record); return 0; }
2、输出1900—2000年中所有的闰年。每行输出3个年号换一行。(判断闰年的条件为:能被4整除,但不能被100整除,或者能被400整除。)
#include int main() { int year; int counter=0; for(year=1900;year<=2000;year++){ if((year%4==0&&year%100!=0)||(year%400==0)){ printf("%d ",year); counter++; if(counter==3){ printf("\n"); counter=0;//重新计数 } } } return 0; }
3、在窗体上以每行两个数的格式输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。(提示:首先分离出每位数字)
#include int main() { int i; int g,s,b;//个位、十位、百位 int counter=0; for(i=100;i<=999;i++){ b=i/100; s=i/10%10; g=i%10; if((b*b*b+s*s*s+g*g*g)==i){ printf("%d ",i); counter++; if(counter==2){ printf("\n"); counter=0; } } } return 0; }
4、求出e的值(保留两位小数),要求使用循环嵌套。
#include int main() { double e=1.0; int i,j; int n; printf("输入n的值:"); scanf("%d",&n); for(i=1;i<=n;i++){ double sum=1.0; for(j=1;j<=i;j++){ sum*=1.0/j;//此处注意是1.0 } e+=sum; } printf("e=%.2lf",e); return 0; }