第三章作业

本文提供了多个编程作业的示例代码及运行结果分析,包括百钱百鸡问题、求圆周率、九九乘法表等经典编程题目,涵盖了算法实现、数值计算等多个方面。

第三章作业

实验作业
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条错误信息原因,并输入电脑形成文字)。


习题5,求e的近似值

/*****求自然对数e的近似值*****/
#include<iostream>
using namespace std;

int n;
{	int a=1;
	while (n>0)
	{	a *= n;
		n--;
	}
	return a;
}
int main()
{
	int n=1;
	double e=0,t=1;
	for(;t>=1e-6;n++)
	{
		e+=t;
		t=1.0/n;

	
	}
	cout<<"e="<<e<<endl;
	
	return 0;
}

程序无法运行,出现了一个小错误,不知道怎么改。


习题6:求圆周率

/*****求圆周率的近似值*****/
#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	double count=0,m=3,t=-1,z=1;
	for(;fabs(z)>=1e-6;t=-t)
	{
		
		count+=z;
		z=(1.0/m)*t;
		m+=2;

	
	}
	cout<<"π="<<count*4<<endl;

  return 0;
}

运行结果如图:


习题7:

/******求输入值的大小区域 *****/
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int i=0;
	long int j;
    float number,m;
	while(1)
	{
		cout<<"请输入一个值:"<<endl;
		cin>>number;
        for(j=1;j<=number;j=10*j)
		{
		  i++;
		}
		switch(i)
		{
			case 2:
				cout<<number <<"is 10 to 100."<<endl;
				break;
			case 3:
				cout<<number <<"is 100 to 1000."<<endl;
				break;
			default:
				if(i<2)
				 cout<<number <<"小于10."<<endl;
				if(i>3)
					cout<<number <<"在1000以上."<<endl;
				break;
		}
		i=0;
	}
    return 0;
}

运行结果:


3-8:

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int j,i;
	for(i=1; i<=4; i++)
    {
		for(j=1; j<=5-i; j++)
			cout<<setw(2)<<" ";  
		for(j=1;j<=2*i-1;j++)
			cout<<setw(2)<<'*';
     cout<<endl;
     }
	for(i=1;i<=3;i++)
	{
		for(j=4;j>=4-i;j--)
			cout<<setw(2)<<" ";
		for(j=4;j>=2*i-2;j--)
			cout<<setw(2)<<'*';
		cout<<endl;
	}
return 0;
}
运行结果如下:


3-9:求值

#include <iostream>
using namespace std;

int main()
{
	int n=1,count=0;
	for(n=1;count<=1000;n++)
	{	
		count+=n*n;

	}
	cout<<"符合条件的最大值n="<<n-1<<endl;

	return 0;
}

运行编译不出


3-10:

#include<iostream>
using namespace std;
int main()
{
	int t=0,x1=0;
	double x2=0,m=0.01;
	while(t!=31)
	{
		t++;
		x1+=100000;
		x2+=m;
		m=m*2;
	}
	cout<<"30天后"<<endl;
	cout<<"陌生人总共给富人"<<x1<<endl;
	cout<<"富翁总共给陌生人"<<x2<<endl;
	return 0;
}

老师,这个也是运行不了,

--------------------Configuration: 3-8 - Win32 Debug--------------------
Linking...
3-9.obj : error LNK2005: _main already defined in 3-8.obj
3-10.obj : error LNK2005: _main already defined in 3-8.obj
Debug/3-8.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.


3-8.exe - 1 error(s), 0 warning(s)


3-11:

#include<iostream>
using namespace std;

int main()
{
  int i=1;
  int t=1;
  while(i<=9)
  {
    
    while(t<=i)
    {
      cout<<t<<"*"<<i<<"="<<i*t<<" ";
      t++;
    }
    t=1;
    cout<<endl;
    i++;
 }
  return 0;
}

运行结果:

作业2:

/***************************************
****     功能:求百钱百鸡问题      *****
***************************************/
#include<iostream>
using namespace std;
int main()
{
	int i=0;
	int a,b,c;   //a,b,c分别储存鸡翁,鸡母,鸡雏的数量
	double money;
	cout<<"鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。"<<endl;
	cout<<"百钱买百鸡,问鸡翁、鸡母、鸡雏各几?"<<endl;
	for(a=0;a<=20;a++)//总共100钱,最多20只
	{
		for(b=0;b<34;b++) 
		{
			c=100-a-b;
			money=5*a+3*b+c/3.0;
		
			if(money==100)
			{
				i++;
				cout<<endl;
				cout<<"第"<<i<<"种情况"<<endl;
				cout<<"鸡翁的数量a="<<a<<endl;
				cout<<"鸡母的数量b="<<b<<endl;
				cout<<"鸡雏的数量c="<<c<<endl;
			
			}
		}
	}
	return 0;
}

结果如下:



作业3:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
	int n,count=0,i,m=0;
	cout<<"please enter a number:"<<endl;
	cin>>n;
	while(n!=0)
	{
		i=n%10,m+=i,cout<<setw(2)<<i;
		n=n/10,count++;

	
	}
	cout<<"        位数:"<<count<<"    各数位和:"<<m<<endl;
	cout<<"由左往右依次为个位、十位、百位---"<<endl;

	
	return 0;

}
	

运行结果:



作业4:

#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
	double x,y,x1,x2,x3,x4;
	cout<<"请输入点的坐标x y"<<endl;
	cin>>x>>y;
	x1=sqrt(pow(x-2,2)+pow(y-2,2));
	x2=sqrt(pow(x-2,2)+pow(y+2,2));
	x3=sqrt(pow(x+2,2)+pow(y-2,2));
	x4=sqrt(pow(x+2,2)+pow(y+2,2));
	if(x1<=1||x2<=1||x3<=1||x4<=1)
		cout<<"该点高度为10"<<endl;
	else
		cout<<"该点高度为0"<<endl;
	return 0;

}

运行结果:




练习5:

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


练习6:

#include<iostream>
using namespace std;
int main()
{
	int day=1,n=1;
	for(;day<=9;day++)
	{
		n=2*(n+1);
	
	
	}
	cout<<"苹果数为:"<<n<<endl;
	return 0 ;

}
运算结果:总共1534个苹果


练习7:

#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和n的值";
	cin>>a;
	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:(如上3-11)

作业9:

#include<iostream>
using namespace std;

int main()
{
	int m=0;
	char i,j,k;
	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;
}
这个是直接复制别人的,运行结果如下:



2014/04/06

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值