实验3-1 分别使用while循环、do while循环、for循环求(即求1+2+3+ ……+100)。
#include <stdio.h> int main(){ int i,sum=0; i=1; while(i<=100) { sum+=i; i++; } printf("sum=%d\n",sum); return 0; }
#include <stdio.h> int main(){ int i,sum=0; i=1; sum=0; do{ sum+=i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0;
#include <stdio.h> int main(){ int i,sum=0; sum=0; for(i=1;i<=100;i++) sum+=i; printf("sum=%d\n",sum); return 0; }
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入
#include <stdio.h> int main(){ int i,sum=1,n; i=1; printf("请输入n的值:"); scanf("%d",&n); while(i<=n) { sum=sum*i; i++; } printf("sum=%d\n",sum); return 0; }
#include <stdio.h> int main(){ int i,sum=1,n; i=1; printf("请输入n的值:"); scanf("%d",&n); do{ sum=sum*i; i++; }while(i<=n); printf("sum=%d\n",sum); return 0; }
#include <stdio.h> int main(){ int i,sum=1,n; printf("请输入n的值:"); scanf("%d",&n); for(i=1;i<=n;i++) sum=sum*i; printf("sum=%d\n",sum); return 0; }
#include <stdio.h> #include <math.h> int main(){ long int k,sum=1,sum1,sum2; do{ sum+=k; k++; }while(k<=100); for(k=1;k<=50;k++) sum1=k*k; for(k=1;k<=10;k++) sum2=1/k; printf("总数为:%d\n",sum+sum1+sum2); return 0; }
#include <stdio.h> int main(){ char c; int zm=0,sz=0,kg=0,qt=0; while((c=getchar())!='\n'){ if((c>='a' && c<='z') ||(c>='A' && c<='Z')) zm++; if(c==' ') kg++; if(c>='0' &&c<='9') sz++; else qt++; } printf("字母个数:%d\n",zm); printf("空格个数:%d\n",kg); printf("数字个数:%d\n",sz); printf("其他字符个数:%d\n",qt); }
实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h> int main(){ int a,b,m,n; printf("请输入正整数m和n:\n"); scanf("%d%d",&a,&b); m=a; n=b; while(a!=b) if(a>b) a=a-b; else b=b-a; printf("最大公约数为:%d\n",a); printf("最小公倍数为:%d\n",m*n/a); }
实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
#include<stdio.h> int main(){ int a,b,c,z; for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { z=a*100+b*10+c; if(a*100+b*10+c==a*a*a+b*b*b+c*c*c) printf("水仙花数为:%d\n",z); } return 0; }
心得:
可以将一个公式变换着写例如最后水仙花那道题a*100+b*10+c可以变为a*a*a+b*b*b+c*c*c
最大公约数可以用减法求,如果a>b,则a=a-b 如果a<b,则b=b-a
那么当a=b时,a,b的值就为最大公约数
最小公倍数就为两个数的乘机再除以最大公约数