lesson3作业(第四周)

实验作业

1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法;

2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)

3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。

4.在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。

5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。

6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?

7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为

    s[5]=1+11+111+1111+11111

8.打印九九乘法表。

9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。

10.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。

作业1:

习题5:求自然对数e的近似值

/********************************
****功能:求自然对数e的近似值***
********************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{

	int i,j;
	double e=1,s=1;
	for(i=1;i<=10;i++)
	{
		for(j=1;j<=i;j++)
		{
			s*=j;
		}
		e+=1/s;
		s=1;
	}
	cout<<"e="<<setprecision(8)<<e<<endl;
    return 0;
}



习题6:

/********************************
****功能:求圆周率π的近似值***
********************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{

	long int i;
	float j;
	double s=0;
	for(i=1;i<=50000000;i++)
	{
		j=1.0/(2*i-1);
		if(i/2==i/2.0)//判断i为奇数或偶数
			s-=j;
		else
			s+=j;
	}
	cout<<"π="<<setprecision(8)<<s*4<<endl;
    return 0;
}



习题7:

/********************************
****功能:求输入值的大小区域 ***
********************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int i=0;
	long int j;
    float num,m;
	while(1)
	{
		cout<<"请输入一个值:"<<endl;
		cin>>num;
        for(j=1;j<=num;j=10*j)
		{
		  i++;
		}
		switch(i)
		{
			case 2:
				cout<<num<<"is 10 to 100."<<endl;
				break;
			case 3:
				cout<<num<<"is 100 to 1000."<<endl;
				break;
			default:
				if(i<2)
				 cout<<num<<"小于10."<<endl;
				if(i>3)
					cout<<num<<"在1000以上."<<endl;
				break;
		}
		i=0;
	}
    return 0;
}


习题8:

#include<iostream>
using namespace std;

int main()
{
	int i,j,k;
	for(i=7;i>=1;i-=2)
	{
		for(k=i;k>0;k--)
		    cout<<' ';

		for(j=8-i;j>0;j--)
		{
			cout<<"* ";
		}
		cout<<endl;
	  
	}
	for(i=5;i>=1;i-=2)
	{
		for(k=8-i;k>0;k--)
		    cout<<' ';

		for(j=i;j>0;j--)
		{
			cout<<"* ";
		}
		cout<<endl;
	  
	}

     return 0;
}



习题9:

#include<iostream>
using namespace std;
int main()
{
	
	int n=0,s=0;
	while(s<=1000)
	{
		n++;
		s+=n*n;
	}
	cout<<"满足条件的最大值";
	cout<<"n="<<n<<endl;
     return 0;
}


习题10:

#include<iostream>
using namespace std;
int main()
{
	int i=0;
	long unsigned int x1=0;
	double x2=0,s=0.01;
	while(i!=30)
	{
		i++;
		x1+=100000;
		s=s*2;
		x2+=s;
	}
	cout<<"一个月后。。。"<<endl;
	cout<<"陌生人给了百万富翁"<<x1<<"元钱"<<endl;
		cout<<"百万富翁给了陌生人"<<fixed<<x2<<"元钱"<<endl;
     return 0;
}


作业2:

/***************************************
****     功能:求百钱百鸡问题      *****
***************************************/
#include<iostream>
using namespace std;
int main()
{
	int i=0;
	int a,b,c;   //定义a,b,c三个整型变量,a,b,c分别储存鸡翁,鸡母,鸡雏的数量
	double d;    //定义浮点型变量储存金钱的总量
	cout<<"鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。"<<endl;
	cout<<"百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?"<<endl;
	for(a=0;a<=20;a++)//因为5*20=100,所以a不能大于20
	{
		for(b=0;b<34;b++)  //因为3*33=99,3*34=102,所以b得小于34
		{
			c=100-a-b;     // a+b+c=100
			d=5*a+3*b+c/3.0;//一只鸡翁5钱,一只鸡母3钱,三只鸡雏1钱,所以总钱量d=5*a+3*b+c/3.0
		
			if(d==100)     //当总钱量为100时,输出abc的值
			{
				i++;
				cout<<endl;
				cout<<"第"<<i<<"种情况"<<endl;
				cout<<"鸡翁的数量a="<<a<<endl;
				cout<<"鸡母的数量b="<<b<<endl;
				cout<<"鸡雏的数量c="<<c<<endl;
			
			}
		}
	}
	return 0;
}



作业3:

/***************************************************
**计算一个整数的位数,输出各位数,计算各位数的总和**
***************************************************/

#include<iostream>
using namespace std;
int main()
{
	long int a,i;
	int k=0,h,m=0;
	cout<<"输入一个整型数:";
	cin>>a;
	for(i=10;i<=100000000;i=i*10)
	{
		k++;
		if(a<i)
			break;
	}
	cout<<"位数:";
	cout<<k<<endl;
	cout<<"输出各位数值:";
	while(i>1)
	{
		i=i/10;
		h=a/i;
		a=a%i;
    	m+=h;
		cout<<h<<' ';
	
	}
	cout<<endl;
	cout<<"各个位的数值和:"<<m<<endl;
    return 0;
}



作业4:

/*******************************************
**输入任一个点平面坐标,求该点建筑物的高度**
*******************************************/
#include<iostream>
#include<math.h>
using namespace std;
float juli(float x1,float y1,float x2,float y2);
int main()
{
	float x,y,k;
	cout<<"请输入坐标(x,y):"<<endl;
	cout<<"x=";
	cin>>x;
	cout<<"y=";
	cin>>y;
	cout<<"您所输入的坐标为("<<x<<","<<y<<")"<<endl;
	x= fabs( x);  //求输入点的绝对值
	y= fabs( y);
	cout<<"取绝对值后坐标为("<<x<<","<<y<<")"<<endl;
	k=juli(x,y,2,2);//调用求距离函数,求(x,y),(2,2)两点的距离
	if(k<=1)                                 //当(x,y)与(2,2)的距离小于等于1时,则该点在建筑上
		cout<<"该点再建筑物的高度为10m"<<endl;
	else                                     //当(x,y)与(2,2)的距离大于1时,则该点不在建筑上
		cout<<"该点再建筑物的高度为0m"<<endl;
	
	return 0;
}
float juli(float x1,float y1,float x2,float y2)//求(x1,y1)和(x2,y2)之间的距离
{
	float t;
      t=sqrt((x1-x2)*(x1-x2)+(y1+y2)*(y1-y2));
		return t;
}



作业5:

/*****************************
**功能:计算1!+2!+3!+……+n!**
*****************************/
#include<iostream>
using namespace std;
int main()
{
	unsigned int n,i,j,k=1;
	long unsigned int s=0;
	cout<<"计算1!+2!+3!+……+n!"<<endl;
	cout<<"请输入整数n的值:";
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=i;j>=1;j--)
		{
			k*=j;
		}
		s+=k;
		k=1;
	}
	cout<<"经计算得:";
	cout<<"s="<<s<<endl;
}


作业6:

/******************************
*** 功能:猴子爱吃苹果问题 ***
******************************/
#include<iostream>
using namespace std;
int main()
{
	int s=1,i;//定义s表示苹果的数量,由于第十天还剩一个,所以初始值为1;
	cout<<"猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。"<<endl;
	cout<<"第二天,又吃掉余下的一半,又多吃一个。"<<endl;
	cout<<"以后每一天,都是吃掉前一天余下的一半零一个。"<<endl;
	cout<<"到第10天,只有一个苹果了。"<<endl;
	cout<<"问猴子第一天共摘了多少个苹果?"<<endl;
	for(i=1;i<10;i++)//一共吃了九天,所以循环九次
	{
		s=(s+1)*2;
	}
	cout<<"经计算:猴子一共摘了"<<s<<"个苹果"<<endl;
	return 0;
}



作业7:

/***************************************
***计算s[n]=a+aa+aaa+aa...a(n个)的值***
***************************************/
#include<iostream>
using namespace std;
int main()
{
	int a,n,i,j,b=0;
	long unsigned int s=0;
	cout<<"计算s[n]=a+aa+aaa+aa...a(n个)的值"<<endl;
	cout<<"输入a的值,切记,a的值为0~9的整数值"<<endl;
	cout<<"a=";
	cin>>a;
	cout<<"输入n的值,n为大于0的整数"<<endl;
	cout<<"n=";
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		{
			b=b*10+a;
			
		}
		s+=b;
		b=0;
	}
	cout<<"经计算得"<<"s["<<n<<"]="<<s<<endl;
	return 0;
}




作业8:

/******************************
****    功能:九九乘法表    ***
******************************/
#include<iostream>
using namespace std;
int main()
{
	int i,j,k;
	cout<<"让我们来重温一下儿时的数学武功秘籍"<<endl;
	for(i=1;i<10;i++)
	{
		for(j=1;j<=i;j++)
		{
			k=i*j;
			cout<<j<<"*"<<i<<"="<<k<<' ';
		}
		cout<<endl;
	}
}



作业9:

#include<iostream>
using namespace std;
/**将张三,李四,王五分别记为a,b,c;将陈六,赵七,宋八分别记为A,B,C**/
int main()
{
	int m=0;
	char i,j,k;//定义i,j,k;i为a的对手,j为b的对手,k为c的对手
	cout<<"将张三,李四,王五分别记为a,b,c"<<endl;
	cout<<"将陈六,赵七,宋八分别记为A,B,C"<<endl;
	for(i='A';i<='C';i++)
		for(j='A';j<='C';j++)
	    	for(k='A';k<='C';k++)
			{
				if(i!=j&&i!=k&&j!=k)
				{
					if(i!='A'&&k!='A'&&k!='C')
					{
						cout<<"比赛名单如下:"<<endl;
						cout<<"a对抗"<<i<<"  "<<"b对抗"<<j<<"  "<<"c对抗"<<k<<"  ";

					}
				}
			}
     return 0;
}




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值