第四周作业(课本习题部分)

时间:2021-05-06 22:12:12


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:

3.

#include<iostream>
using namespace std;
int main()
{
	int i,j;
	for(i=0;i<5;i++)
	{
		for(j=i;j<5;j++)
			cout<<"*";
		cout<<endl;
	}

	return 0;
}


第四周作业(课本习题部分)

5.

 

#include<iostream>  
#include<iomanip>  
using namespace std;  
int main()  
{  
  
    int a,b;                              //定义整型a、b
    double e=1,s=1;                       //定义双精度型e=1,s=1
    for(a=1;a<=10;a++)                    //用for语句使a自增,然后条件变为b<=a;则使b自增,
    {  
        for(b=1;b<=a;b++)                 //使s=a*s,于是就对s求和了
        {  
            s*=b;  
        }  
        e+=1/s;                            //使e=1+1/s的和
        s=1;                               
    }  
    cout<<"e="<<setprecision(6)<<e<<endl;  //是其误差为6为小数点
    return 0;  
}  
第四周作业(课本习题部分)

 总结:一开始我写到e+=1/s就结束了,但是不知道为什么得出来的数不正确,于是我参考了同学的程序,原来要加上s=1,真的是细节决定成败。

             然后呢,对于a来书取小于任何值对e的大小是没有影响的。


作业6


#include<iostream>
using namespace std;
int main()
{
    double pi=1;                 //定义pi并赋值//
    int i=1,j=1;                 //定义i、j并赋值//
    while(1.0/i>=10e-7)          //条件为:1/i>=10e-7,即误差小于10的-6次方//
    {  
        j=-j;                    //循环语句
        i=i+2;  
        pi=pi+j*(1.0/i);       
          
    }  
    cout<<"π="<<4*pi<<endl;  
    return 0;  
}  
第四周作业(课本习题部分)

结果分析:通过这道题,我觉得先画出一个N-S图很重要,然后就是循环语句的公式,先把题目中的数学语句转化为公式。


作业7:

#include<iostream>
using namespace std;
int main()
{
	int a;
	cout<<"请输入一个数:"<<endl;
	cin>>a;
	if(a<=100)
	{
		if(a<=10)
		{
		cout<<a;
		cout<<"is 0 to 10"<<endl;
		}
		  
	    else
		{
			cout<<a;
			cout<<"is 10 to 100"<<endl;
		}

	}
	
	else
	{
		if(a<=1000)
		{cout<<a;
		cout<<"is 100 to 1000"<<endl;
		}
		if(a>=1000)
		{	cout<<a;
		cout<<"is up to 1000"<<endl;
		}
	}
	return 0;
			
}  


第四周作业(课本习题部分)

结果分析:经过这个作业,我对if语句的应用更加的熟练了,也发现if语句是可以结束的,而一开始用while语句确停不下啦,我会再练练


while语句,争取熟练它。


作业8:

#include<iostream>
using namespace std;
int main()
{

    int i,j,k;  
    for(i=0;i<=3;i++)  
    {  
        for(j=0;j<6-2*i;j++)  
            cout<<" ";  
        for(k=0;k<2*i+1;k++)  
            cout<<" *";  
        cout<<endl;  
    }  
    for(i=0;i<=2;i++)  
    {  
        for(j=0;j<2+2*i;j++)  
            cout<<" ";  
        for(k=0;k<5-2*i;k++)  
            cout<<" *";  
        cout<<endl;  
    }  
    return 0;  
			
}  

第四周作业(课本习题部分)

总结:其实我是结合了书本上习题和参考了同学的才写出来,感觉一分为二的把它写出来还是比较简单的,所以要学会把程序简单化。


作业9:

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

    return 0;  
			
}  


第四周作业(课本习题部分)
结果分析:感觉这个主要是自增和while语句的练习。