《C语言程序设计》实验报告
学 号 |
160809209 |
姓 名 |
李梦鑫 |
专业、班 |
计科16-2班 |
|
学 期 |
2016-2017 第1学期 |
指导教师 |
黄俊莲 吉吉老师 |
|||
实验地点 |
C05 |
机 器 号 |
|
|||
时 间 |
2016年 10 月 13 日 6 周 周四 1、2 节 |
|||||
截至日期 |
2016.10.13 11:50 |
|||||
实验任务清单 |
|
|||||
教师评语
|
成绩 |
|||||
|
||||||
|
实验3 循环结构程序设计
实验3-1 分别使用while循环、do while循环、for循环求 (即求1+2+3+ ……+100)。
源码:
#includeint 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由键盘输入。
提示:
- 依照实验3-1求n!,其中n!=1*2*3……*n
源码
#includeint main(){ int n,i,jiec=1; printf("请输入一个整数n:"); scanf("%d",&n); i=n; while(i>1){ jiec=jiec*i; i--; } printf("%d!=%d\n",n,jiec); return 0; }
实验3-3
程序源码
#includeint main() { int k,sum=0; for(k=1;k<=100;k++) sum+=k; printf("sum=%d\n",sum); for(k=1;k<=50;k++) sum=sum+k*k; printf("sum=%d\n",sum); for(k=1;k<=10;k++) sum=sum+1.0/k; printf("sum=%d\n",sum); return 0; }
实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
实验提示 :
程序源码
#includeint 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++; else if(c==' ') kg++; else if(c>='0'&&c<='9') sz++; else qt++; } printf("字母个数;%d\n",zm); printf("空格个数;%d\n",kg); printf("数字个数;%d\n",sz); printf("其他个数;%d\n",qt); return 0; }
实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
程序源码
#includeint main() { int m,n,t,i,gys=1,gbs; printf("请输入两个整数;"); scanf("%d%d",&m,&n); if(n>m){ t=m; m=n; n=t; } for(i=n;i>=1;i--) if(m%i==0&&n%i==0) break; printf("m=%d,n=%d",m,n); if(i!=0){ gys=i; printf(",最大公约数为;%d\n",gys); } gbs=m*n/gys; printf("最大公倍数为;%d\n",gbs); return 0; }
实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
程序源码
#includeint main() { int n,k1,k2,k3; for(n=100;n<=999;n++){ k1=n%10; k2=n/10%10; k3=n/100; if(n==k1*k1*k1+k2*k2*k2+k3*k3*k3) printf("%d\n",n); } return 0; }
实验心得
第一题还算简单就当是练练手,回忆了一下循环结构的基础形式,然后第二题就出现了赋值和阶乘,思考了一下然后加上老师的指导顺利完成,第三题就是复杂了一点但是还算简单,可以理解。第四题循环结构复杂了一点但是理解了很容易,第五题的最大公约数,最小公倍数的公式和表达方式忘记了,经过老师的帮助和讲解终于明白了,虽然有点复杂但是还算可以理解,最后一题经过老师的举例讲解也顺利完成了。希望自己下次更能快速的完成,迅速理解,继续努力。