第三章作业

明哥,这是三角形的加强完善版。。。大笑

/******计算三角形的面积与周长(加强版)******/

#include <iostream>
#include <math.h>	                            //由于用到sqrt()函数,要用到数学调用,头文件形式为<math.h>
using namespace std;

int main()
{
	float a, b, c, p, S, C;                    //定义三角形的三边变量a、b、c,面积S,周长C
	char k;
	while(1)
	{
		cout<<"请输入三角形的三边长度:";
		cin>>a>>b>>c;                                 //用户自行输入三角形的三边长度

		if(a+b>c&&a+c>b&&b+c>a)                       //用if语句判断能否构成三角形
		{
			p = (a+b+c)/2;
			S = sqrt(p*(p-a)*(p-b)*(p-c));           //三角形的面积公式
			C = a+b+c;
			cout<<"三角形的面积是: "<<S<<endl;
			cout<<"三角形的周长是: "<<C<<endl;
		}
		else                                        //若不能构成三角形,再次输入数据
		{
			cout<<"您输入的三边长度不能构成三角形。"<<endl;
		}
		cout<<"若想继续输入,请按Y;若想退出程序,请按N。"<<endl<<endl;
		cin>>k;
		if(k =='Y'||k == 'y')
			continue;
		else if(k == 'N'||k == 'n')
			break;
	}
	system("pause");

	return 0;
}

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


书本作业题

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

double fun(double x)
{
	double f;
	if(x<0)
		cout<<"data error";
	else if(x==0||x==1)
		f = 1;
	else
		f = fun(x-1)*x;
	return f;
}
int main()
{
	double e, t, k;
	e = t = k = 1;
	while(t>10e-6)
	{
		e +=1.0/fun(k);
		t = 1.0/fun(k);
		k++;
	}
	cout<<"e = "<<e<<endl;
		
	return 0;
}



/******求pi******/
#include <iostream>
using namespace std;

int main()
{
	double pi, i, k, t;
	pi = 0,k = i = t = 1;
	while(t>10e-6)
	{
		pi += 4*1.0/i*k;
		t = 1.0/i;
		k *= -1;
		i = i+2;
		
	}
	cout<<"pi = "<<pi<<endl;
		
	return 0;
}


/******数据分类******/
#include <iostream>
using namespace std;

int main()
{
	float n;
	while(1)
	{
		cout<<"请输入数据:";
		cin>>n;
		if(n<10)
			cout<<n<<" is below 10."<<endl;
		else if(n<100)
			cout<<n<<" is 10 to 100."<<endl;
		else if(n<1000)
			cout<<n<<" is 100 to 1000."<<endl;
		else
			cout<<n<<" is over 1000."<<endl;
	}
		
	return 0;
}


/******“*阵”******/
#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; 
}

这道我要仔细研究,表示不懂

/*****求n******/
#include <iostream> 
using namespace std; 
int main() 
{ 
	int n, k, sum = 0;
	for(n=1;sum<=1000;n++)
	{
		k = n*n;
		sum += k;
		
	}
	 --n;
	cout<<"n的最大值:"<<n<<endl;

	return 0; 
}



/******换钱计划******/
#include <iostream> 
using namespace std; 
int main() 
{ 
	int i, k = 0, x, y = 1;               //j代表富翁,k代表陌生人。
    for(i=1;i<=30;i++)
	{
		k += 100000;
		x += y;
		y = y*2;
	}
	cout<<"陌生人给了富翁"<<k<<"元"<<endl
		<<"富翁给了陌生人"<<x<<"元"<<endl;

	return 0; 
}



作业2

/******百钱百鸡******/
#include <iostream>
using namespace std;
 
int main()
{
       int x, y, z;
       for(x=0;x<=20;x++)
              for(y=0;y<=33;y++)
                     for(z=0;z<=100;z+=3)
                            if(5*x+3*y+z/3==100&&x+y+z==100)
                                   cout<<x<<"只鸡翁"<<y<<"只鸡母"<<z<<"只雏鸡"<<endl;
 
       return 0;
}



作业3

/******计算整数******/
#include <iostream>
using namespace std;
 
int main()
{
	   int sum = 0, n, i = 0, j;
       cout<<"请输入一个整数:";
       cin>>n;
	   cout<<"每一位数字是:";
	   while(n>0)
	   {
			j = n%10;
			sum += j, i++;
			n = n/10;
			cout<<j<<" ";
	   }
	   cout<<"这是 "<<i<<" 位数字。"<<endl
		<<"数字之和是:"<<sum<<endl;
 
       return 0;
}



/******求高度******/
#include <iostream>
using namespace std;
 
int main()
{
       int x, y;
	   cout<<"请输入该点的横坐标:";
	   cin>>x;
	   cout<<"请输入该点的纵坐标:";
	   cin>>y;
	   cout<<"该点的坐标为:"<<"("<<x<<","<<y<<")"<<endl;
	   if(((x+2)*(x+2)+(y+2)*(y+2)<=1)
		   ||((x-2)*(x-2)+(y+2)*(y+2)<=1)
		   ||((x+2)*(x+2)+(y-2)*(y-2)<=1)
		   ||((x-2)*(x-2)+(y-2)*(y-2)<=1))
			   cout<<"该点建筑物的高度为10m。"<<endl;
	   else
		   cout<<"该点建筑物的高度为0m。"<<endl;
       return 0;
}

/******求n的阶乘******/
#include <iostream>
using namespace std;

int main()
{
	int sum, fact, m, n, i;
	sum = 0;
	cout<<"请输入n的值:";
	cin>>n;
	for(m = 1;m<=n;m++)
	{
		fact = 1;
		for(i = 1;i<=m;i++)
			fact *= i;
		sum += fact;
	}
	cout<<"sum = "<<sum<<endl;
		
	
	return 0;
}


/******猴子苹果******/
#include <iostream>
using namespace std;
 
int main()
{
       int sum = 1, i;
	   for(i = 1;i<10;i++)
	   {
		   sum = (sum+1)*2;
	   }
	   cout<<"猴子一共摘了 "<<sum<<" 个苹果。"<<endl;

       return 0;
}



/******求a+aa+aaa....+aaaaaa******/
#include <iostream>
using namespace std;
 
int main()
{
       int i, a, n, j, k = 0;
	   long s = 0;
	   cout<<"请输入a的数值(a的数值范围0~9):";
	   cin>>a;
	   cout<<"请输入n的数值:";
	   cin>>n;
	   for(i = 1;i<=n;i++)
	   {
		   for(j = 1;j<=i;j++)
		   {
			   k = k*10+a;
		   }
		   s += k;
		   k = 0;
	   }
	   cout<<"s"<<"["<<n<<"]"<<" = "<<s<<endl;

       return 0;
}



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



/******九九数乘表******/
#include <iostream> 
using namespace std; 
int main() 
{ 
	int i,j; 
	for (i=1,j=1;j<=9;j++) 
	{  
		i = 1;
		cout<<i<<"*"<<j<<"="<<i*j<<" "; 
		while(i<j) 
		{ 
			i++; 
			cout<<i<<"*"<<j<<"="<<i*j<<" "; 

		} 
		cout<<endl;
	} 

	return 0; 
}



昨天连体地复制了,不知道会变成这样,这次是修改版本。。尴尬尴尬

另附上三角形的最终版本奋斗奋斗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值