《C语言程序设计》实验报告
学 号
160809223
姓 名
姜文奇
专业、班
计科16-2班
学 期
2016-2017 第1学期
指导教师
黄俊莲 吉吉老师
实验地点
C05
机 器 号
时 间
2016年 10 月 13 日 6 周 周四 1、2 节
截至日期
2016.10.13 11:50
实验任务清单
实验3-1 分别使用while循环、do while循环、for循环求(即求1+2+3+ ……+100)
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
实验3-3 求。
实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
实验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;
/*for(i=1;i<=100;i=i+1)
{
sum=sum+i;
}
i=1;sum=0;*/
/*while(i<=100)
{
i=i+1;sum=sum+i;
}*/
i=1;sum=0;
do{
sum=sum+i;
i++;
}while(i<=100);
printf("sum=%d\n",sum);
return 0;
}
运行结果抓图
实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
提示:
依照实验3-1求n!,其中n!=1*2*3……*n
源码
#include<stdio.h>
int main(){
//whlie循环求n!=1*2*...*n
int i,n,jiec=1;
printf("请输入一个整数:");
scanf("%d",&n) ;
i=1;
while(i<=n){
jiec=jiec*i;
i++;
}
printf("%d=%d\n",jiec);
return 0;
}
运行结果抓图:
实验3-3 求。
程序源码
#include<stdio.h>
int main(){
//使用for循环完成1+2+3+...+100
int k;float sum=0;
for(k=1;k<=100;k++)
sum+=k;
printf("sum=%f\n",sum);
for(k=1;k<=50;k++)
sum+=k*k;
printf("sum=%f\n",sum);
for(k=1;k<=10;k++)
sum+=1.0/k;
printf("sum=%f\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>
#include<math.h>
int main(){
//m,n的最大公约数 能够同时整除m和n的最大数
int m,n,t,i,gys,gbs;
printf("请输入两个整数:") ;
scanf("%d%d",&m,&n);
//m的位置放大的数
if(n>m){
t=m;
m=n;
n=t;
}
for(i=n;i>=1;i--)
if(m%i==0&&n%i==0)
break;
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;//k1个位,k2十位,k3百位
for(k1=0;k1<9;k1++)
for(k2=0;k2<9;k2++)
for(k3=0;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;
}
#include<stdio.h>
int main(){
//水仙花数
int n,k1,k2,k3;//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;
}
}
运行结果抓图
实验心得
虽然这次试验大部分都是老师带着我们做的,但是我也在其中收获许多的知识,比如求最大公约数和最小公倍数,复习了for while和do while循环的用法,统计一些数字,字符等,还有水仙花数,C语言其实并不太难,只不过我没有好好的去记。