C语言实验循环程序设计

桂 林 理 工 大 学
实 验 报 告
实验名称 循环程序设计 日期 2018年 12月19日
一、 实验目的:
1. 掌握用while语句、do-while语句、 for语句实现循环的方法。
2. 掌握程序设计中用循环实现的一些常用算法。
3. 进一步学习调试程序的方法。

二、实验环境:
Visual C++

三、实验内容:
(写出主要的内容)
1. 输入一个整数n,计算n!并输出。

#include<stdio.h>
int main()
{
	int n,i,s=1;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{s=s*i;
	}
	printf("%d!=%d\n",n,s);
	return 0;
}

输入6
输出为6!=720
2. 输入一个整数n(n>6),计算1!+2!+3!+……+n!并输出。

#include<stdio.h>
int main()
{
	int n,i,s=1,t=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{s=s*i;
	t=t+s;
	}
	printf("sum=%d\n",t);
	return 0;
}

输入7
输出为sum=5913
3. 输入一个整数n(n>6),依次输出1至n之间各个数的阶乘值,输出格式为:
1!=1
2!=2
3!=6
……
(学号为单号的同学做第2题,学号为双号的同学做第3题,鼓励两题都做 )。

#include<stdio.h>
int main()
{
	int n,i,s=1;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{s=s*i;
	printf("%d!=%d\n",i,s);
	}
	return 0;
}

输入7
输出为
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040

4. 百鸡百钱问题:一百个铜钱买一百只鸡,其中公鸡一只花5个铜钱,母鸡一只花3个铜钱,小鸡三只花一个铜钱,问一百只鸡中公鸡、母鸡、小鸡各多少只?(要求将所有可能的解都求出来)

#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<20;i++)
	for(j=i;j<33;j++)
	{
	k=100-i-j;
	if(i * 5 + j * 3 + k / 3 == 100 && k % 3 == 0)
	printf("公鸡%d 母鸡%d 小鸡%d\n",i,j,k);}
	return 0;
}

求解为:公鸡4 母鸡18 小鸡78
公鸡8 母鸡11 小鸡81
5. 输入一行字符,统计数字字符,字母,空格和其他字符的个数
C=getchar();
While(c!=’\n’)
{if() x1++;
C=getchar();
}

6. 实现简单的投票计数功能:3个人的姓名分别用字符’a’、’b’和’c’表示,当投票的所选人姓名是’#’时结束投票,变量number_a、number_b、number_c分别表示三个候选人的得票数。
统计投票数的操作步骤如下:
(1)输入第一张投票所选人的姓名。
(2)判断输入的候选人是谁,如果输入的是字符’a’,则’a’候选人的得票数number_a加1;如果是’b’,则’b’ 候选人的得票数number_b加1;如果是’c’,则’c’ 候选人的得票number_c数加1。
(3)输入下一张投票所选人的姓名。
(4)判断投票的所选人姓名,如果姓名不是’#’,则转到(2);如果姓名是’#’,则转到(5)。
(5)输出各候选人的得票结果。

#include<stdio.h>
int main()
{
	int number_a=0,number_b=0,number_c=0;
	char c;
	c=getchar();
	while(c!='#')
	{
		if(c=='a') number_a++;
		else if(c=='b') number_b++;
		else if(c=='c') number_c++;
		c=getchar();
		if(c=='#') break;
	}
	pirintf("number_a=%d number_b=%d number_c=%d\n",number_a,number_b,number_c);
	return 0;
}

输入abc#
输出number_a=1 number_b=1 number_c=1

7. 输出100—1000之间所有的水仙花数, 水仙花数指满足一个三位数等于每一位数的立方和的数,例如 153=13+53+33

#include<stdio.h>
int main()
{
	int x,a,b,c;
	for(x=100;x<1000;x++)
	{a=x%10;b=x/10%10;c=x/100;
	if(x==a*a*a+b*b*b+c*c*c)
	printf("%d ",x);
	}
	return 0;
}

输出结果为153 370 371 407
8. 输入一批非零的整数,以输入零表示结束,求这批数据的平均值并输出。

int n;
Scanf(%d”,&n);
While(n)
{
Scanf(%d”,&n);
}
include<stdio.h>
int main()
{
	float n,i=0,sum=0;
	float x;
	scanf("%f",&n);
	while(n!=0)
	{
		sum+=n;
		scanf("%f",&n);i++;
		if(n==0) break;
	}
	x=sum/i;
	printf("sum=%.2f i=%.2f x=%.2f\n",sum,i,x);
	return 0;
}

输入1 2 3 4 5 6 0
输出sum=21.00 i=6.00 x=3.50
9.习题求最大公约数和最小公倍数

#include<stdio.h>
int main()
{
	int a,b,t,x;
	scanf("%d %d",&a,&b);
	if(a<b){t=a;a=b;b=t;}
	for(t=b;t>0;t--)
	{
	if(a%t == 0 && b%t == 0)break;
	x=t;}
	x=a*b;
	for(;x>0;x--)
	if(x%b == 0) break;
	printf("最大公约数=%d\n最小公倍数=%d\n",t,x/t);
	return 0;
 }

输入45 10
输出 最大公约数=5
最小公倍数=90
10.习题5.16

四、心得体会:
1.通过该次的上机能较好掌握编程的基本方法
2.通过比较不同的程序的不同理解了程序的作用

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值