第四周作业

由于时间较长,文档混乱,不分顺序

//比赛找对手
#include<iostream>
using namespace std;


int main()
{
	int a,b,c,d,e,f;
	for(a=1;a<=3;a++)
		for(b=1;b<=3;b++)
			for(c=1;c<=3;c++)
				if(a==1 ||c==1||c==3||a==b||a==c||b==c)          //这里最开始用了&&,结果当然出错。
				{}
					else
					{		
						cout<<"张三 - ";
						d=a;

					if(d==1)
						  cout<<"陈六"<<endl;                  //想法很多,做法很少。
                                                            //本来想用goto节省筛选名字if的重复次数,无奈不知道怎么转回去继续,百度之后发现不推荐用goto
					                                              //只能用这种笨方法
						 if(d==2)
						  cout<<"赵七"<<endl;
						if(d==3)
						cout<<"宋八"<<endl;
						cout<<"李四 - ";
						d=b;
					if(d==1)
						  cout<<"陈六"<<endl;
						 if(d==2)
						  cout<<"赵七"<<endl;
						if(d==3)
						cout<<"宋八"<<endl;
						cout<<"王五 - ";
						d=c;

					if(d==1)
						  cout<<"陈六"<<endl;
						 if(d==2)
						  cout<<"赵七"<<endl;
						if(d==3)
						cout<<"宋八"<<endl;}

					return 0;

}

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

int main()
{
	double i,n,p,e;
	
	for(n=1,i=1,e=1;i<=10;i++)                  //for(n=1,i=1,e=1;p>=1e-6;i++)  这么写的话程序结果错误,不知道错误原因是啥 
	{
		
		n*=i;
		p=1/n;
		e+=p;
		
	}
	cout<<"e的近似值为:"<<setprecision(7)<<e<<endl;

	return 0;//怎么样才是误差在10的-6次方内,这个不是很理解。究竟是结果去7位有效数字呢?还是求到其中一项阶乘的倒数为7位有效数呢?这是个问题。
}

/*圆周率π*/
#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	int d=1;
	double a=1,c=0,b=1;
	for(;b>=1e-6;a+=2,d++)
	{
		b=1/a;
		if(d%2==1)
			c+=b;
		else
			c-=b;
	}
	cout<<"π的近似值为:"<<setprecision(7)<<4*c<<endl; //不知道什么原因,最后结果错误,小数点后前5位精确,第6位错误。
	return 0;
}

/*百钱百鸡*/
#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d,n=0;
	for(a=0;a<20;a++)
	for(b=0;b<34;b++)
	for(c=0;c<=99;c+=3)
	{
		d=5*a+3*b+c/3;
		if(d==100 && a+b+c==100)
		{n++;
			cout<<"第"<<n<<"种方案:"
				<<"鸡翁 "<<a<<" 只"<<'\t'
				<<"鸡母 "<<b<<" 只"<<'\t'
				<<"鸡雏 "<<c<<" 只"<<endl;}}
			return 0;
}

/*猴子吃苹果*/
#include<iostream>
using namespace std;

int main()
{
	int a,b=1;
	for(a=1;a<=9;a++)
	{b+=1;
	b*=2;}
		cout<<"猴子第一天摘了"<<b<<"个苹果"<<endl;//这个猴子明显是开挂的,动手能力和消化能力都已经是传说级别。
	return 0;

}

/*计算1*/
#include<iostream>
using namespace std;

int main()
{
	int a=1,c=1,n,s=0;
	cout<<"s=1!+2!+3!+......n!,输入n"<<endl;
	cin>>n;

	for(;a<=n;a++)                    //在这里,如果不给for加{}范围,则会出现结果错误,何解?
	{c*=a;
	s+=c;}

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

/*计算2*/
#include<iostream>
using namespace std;

int main()
{
	int a=1,b=1,n,s=0;
	cout<<"s=1!+2!+3!+......n!输入n="<<endl;
	cin>>n;
	while(a<=n)
	{b*=a;
	s+=b;
	a++;}
	cout<<"s="<<s<<endl;
	return 0;


}

/*s[n]=a+aa+aaa+aa...a(n个)*/
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int a,b=0,c=0,n,s=0;
	cout<<"已知s[n]=a+aa+aaa+aa...a(n个)按照先后顺序先后输入a,n:"<<endl;
	cin>>a>>n;
	for(;b<=n-1;b++)
	{
		c+=a*pow(10,b);
		s+=c;
	}
	cout<<"s["<<n<<"]="<<s<<endl;
	return 0;
}

/*塔,高*/
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	double a,b,c;
	cout<<"输入点平面坐标(按横轴纵轴先后顺序):"<<endl;
	cin>>a>>b;
	
	a=fabs(a);
	b=fabs(b);
	c=(2-a)*(2-a)+(2-b)*(2-b);
	if(c<=1)
		cout<<"该点有建筑物且高度为10m"<<endl;
	else
		cout<<"该点无建筑物"<<endl;
	return 0;
}

/*课本习题7*/
#include<iostream>
using namespace std;

int main()
{
	int a;
	cout<<"输入一个数,显示其范围:"<<endl;
	cin>>a;
	if(a<10)
	cout<<a<<"小于10"<<endl;
	else if(a<100)                         //有个奇怪的错误,如果改成else if(10<=a<100),下面改成else if(100<=a<1000),那么在100以后的数全归入10-100的范围,望解答
		cout<<a<<"大于等于10小于100"<<endl;
	else if(a<1000)
		cout<<a<<"大于等于100小于1000"<<endl;
	else 
		cout<<a<<"大于等于1000"<<endl;
	return 0;   
}

#include<iostream>  
using namespace std;  
  
int main()  
{  
	cout<<"      *"<<endl
		<<"    * * *"<<endl
		<<"  * * * * *"<<endl
		<<"* * * * * * *"<<endl
		<<"  * * * * *"<<endl
		<<"    * * *"<<endl
		<<"      *"<<endl;//笨方法
     return 0;  
}  

/*习题9*/
#include<iostream>
using namespace std;

int main()
{
	int n,j;
	for(n=1,j=0;j<=1000;n++)
		j+=n*n;
	cout<<"n="<<n-1<<endl;
	return 0;
}

/*习题10*/
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int a,b;
		a=100000*30;
		b=0.01*pow(2,30);
		cout<<"富翁给了陌生人"<<b<<"元"<<endl
			<<"陌生人给了富翁"<<a<<"元"<<endl;
		return 0;
}

/*乘法表*/
#include<iostream>
using namespace std;

int main()
{
	int i=1,j=1;
	for(;j<=9;j++)
	{
	for(;i<=j;i++)
	{cout<<i<<"*"<<j<<"="<<i*j<<" ";}
	cout<<endl;
	i=1;
	
	}
	return 0;
		
}

/*整数*/
#include<iostream>
#include<math.h>
using namespace std;

int main()
{
	int a,b=0,c=11,d,e=0;
	cout<<"输入一个10位数以内的整数:";
	cin>>a;
	d=a;
	
	for(;c>=10;b++)                       //这里很艹蛋,不给c设置>=10的初始值的时候,会默认c是一个负得很夸张的数,从而导致for循环一开始就结束了
	{
		c=a/pow(10,b);	
	}
	cout<<endl<<"该整数为"<<b<<"位数"<<endl
		<<"该整数各位数分别为:";
	for(;b>=1;b-=1)                  //经测试,这里输入的数字若超于10位数,程序结果会错误,目测是计算范围的问题
	{
		c=a/pow(10,b);
		d=a/pow(10,b-1);

		cout<<d-c*10<<" ";
		e+=d-c*10;
	}
		cout<<endl<<"各位数之和为:"<<e<<endl;
	return 0;
}

失误都在程序备注中提出了,然后就是作业太多,压力太大

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值