《C语言程序设计》实验报告
学 号 160809221 姓 名 李鑫 专业、班 计科16-2班
学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师
实验地点 C05 机 器 号
时 间 2016年 10 月 13 日 6 周 周四 1、2 节
截至日期 2016.10.13 11:50
实验任务清单 1. 实验3-1 分别使用while循环、do while循环、for循环求 (即求1+2+3+ ……+100)
2. 实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
3. 实验3-3 求 。
4. 实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
5. 实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
6. 实验3-6输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
教师评语
成绩
实验3 循环结构程序设计
实验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;
}
运行结果抓图
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
提示:
1. 依照实验3-1求n!,其中n!=1*2*3……*n
源码#include<stdio.h>
int main()
{int i,n,jiec;
printf("请输入一个整数n:");//n!=1*2*3...*n
scanf ("%d",&n);
i=n;
while (i>=1)
{jiec=jiec*i;
i++;
}
return 0;
}
运行结果抓图:
实验3-3 求 。
程序源码#include<stdio.h>
int 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+=k*k;
}
printf("sum=%d\n",sum);
for(k=1;k<=10;k++){
sum+=1/k;
}printf("sum=%d\n",sum);
return 0;
}
运行结果抓图
实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
实验提示:
程序源码#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++;
else if(c==' ')
kg++;
else if(c>='0'&&c<='100')
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,求其最大公约数和最小公倍数。
程序源码#include<stdio.h>
int main()
{
int m,n,t,i,gys=1,gbs;
printf("请输入两个整数:");
scanf("%d%d",&m,&n);
if(n>m){
m=t;
n=m;
t=n;
}
for(i=m;i>=1;i++)
break;
printf("m=%d,n=%d",m,n);
if(i!=0){
gys ;
printf("最大公约数为:%d\n,gys");
}
gbs=m*n/gys;
printf("最小公倍数为:%d\n,gbs");
return 0;
}
运行结果抓图
实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
程序源码#include<stdio.h>
int main()
{
//水仙花数
int n,k1,k2,k3;
for(k1=0;k1<=9;k1++)
for(k2=0;k2<=9;k2++)
for(k3=1;k3<=9;k3++) {
if(k3*100+k2*10+k1==k1*k1*k1+k2*k2*k2+k3*k3*k3)
printf("%d\n",k3*100+k2*10+k1);
}
return 0;
}
运行结果抓图
实验心得
Do while 语句还不怎熟悉,这次试验有一个问题一是那个第五个任务的最大公约数和最小公倍数的公式怎样表示在c语言里让它运行。第六个任务通过老师的讲解能明白一些 ,其他的都基本掌握到了。