我的C++第四周作业2(第三章作业2-10)

作业要求.

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(课本部分例题和习题)已在另一篇博文完成。。。

 

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

/***** 求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。
         百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)*********************/
//设买了x只鸡翁,y只鸡目,z只鸡雏。则有:x+y+z==100, 5*x+3*y+1/3*z==100(15*x+9*y+z==300);
 
#include<iostream>
using namespace std;
void main()
{
	int x,y,z,i;
	i=1;
	for(x=0;x<=20;x++)
		for(y=0;y<=33;y++)
		{
			z=100-x-y;
			if(15*x+9*y+z==300)
			{
				cout<<"第"<<i<<"种情况:"
					<<"  鸡翁数为:"<<x
					<<"  鸡母数为:"<<y
					<<"  鸡雏数为:"<<z
					<<endl;
				i++;
			}
		}
}
		
 
 
作业3. 编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。
#include<iostream>
using namespace std;
int main()
{
    int a,b,sum,i,j,count;
	cout<<"请输入一个整数:";
	cin>>a;
	b=a;
	count=0;
	sum=0;
    for(i=1;a>0;i++)
	{
		a=a/10;
	    count++;
	}
	cout<<"整数的位数为:"<<count<<endl;
	for(j=0;j<count;j++)
	{
        sum+=b%10;
		b=b/10;
	}
    cout<<"整数各个数位上数字之和为"<<sum<<endl;   
   
	return 0;
}
 
 
作业4. 在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
  double x,y,s;
  cout<<"请输入任一平面点坐标(x,y):"<<endl;
  cout<<"x=";
  cin>>x;
  cout<<"y=";
  cin>>y;
  s=sqrt((x-2)*(x-2)+(y-2)*(y-2));
  if(s<=1)  
        cout<<"该点建筑物高度为10米"<<endl;  
  else  
        cout<<"该点建筑物高度为0米"<<endl;   	  

 return 0;

}
 
 
作业5.  编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
方法一:
#include<iostream>    
#include<math.h>    
using namespace std;    
int main()    
{    
    int n,a,i,j,S;    
    cout<<"计算S=1!+2!+3!+......n!的值"<<endl;    
    cout<<"请输入正整数n:";    
    cin>>n;   
    S=0;  
    i=1;  
    while(i<=n)  
    {  
        a=1;  
        j=1;  
        while(j<=i)  
        {  
            a=a*j;  
            j++;  
        }  
        S=S+a;  
        i++;  
    }  
    cout<<"S = "<<S<<endl;  
  
    return 0;    
}  

 

方法二:

#include<iostream>
using namespace std;
int main()
{
    int i,a,n,sum;
	cout<<"当n=";
	cin>>n;
	sum=0;
	a=1;
	for(i=1;i<=n;i++)
	{
		a*=i;
	    sum+=a;
	}
	cout<<"1!+2!+3!+.....+n!="<<sum<<endl;
	return 0;
}

 

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

#include<iostream>
using namespace std;
void main()
{
	int i,x,a;	     //i之的是第i天,x为第一天摘的总苹果数,a为第i天所剩下的苹果数
    a=1;
    for(i=9;i>=1;i--)
	{
		x=(a+1)*2;
		a=x;
	}
	cout<<"第一天摘的苹果树为:"<<x<<"个"<<endl;
}
 
 
作业7. 计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为

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

#include<iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    int n,a,i,S1,S;  
    cout<<"计算S[n]=a+aa+aaa+aa...a(n个)的值"<<endl;  
    cout<<"请输入a的值:"<<" a=";  
    cin>>a;  
    cout<<"请输入n的值:"<<" n=";  
    cin>>n; 
    if(a<0||a>9||n<1)
	{
		exit(0);
	}
	S1=0;
    S=0;
	for(i=0;i<n;i++)
	{
	S1=S1*10+a;
	S+=S1;
	}
	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. 两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。
/*********两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,
已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,
张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。********/

//设张三用a表示,李四用b表示,王五用c表示;陈六用x表示,赵七用y表示,宋八用z表示

#include<iostream>
using namespace std;
void main()
{
char i,j,k;             //令i是a的对手,j是b的对手,k是c的对手
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
	if(i!=j)
		for(k='x';k<='z';k++)
		{ if(i!=k&&j!=k)
		{ if(i!='x'&&k!='x'&&k!='z')
		cout<<"比赛名单为:"
		    <<" a对"<<i<<" "
			<<" b对"<<j<<" "
			<<" c对"<<k<<" "<<endl;
		}
		}
}
}
  

 
 
作业10. 收集错误信息原因

一,在编译时,出现fatalerror C1010: unexpected end of file while looking for precompiled headerdirective
的错误.

方法

1、如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从Category组合框中选中PrecompiledHeaders,选择NotUsing Precompiled headers。确定。2、在文件开头添加:#include "stdafx.h"

 

二.undeclared  identifier 即是“没有定义过的标识符”

在程序中找到错误的位置和错误的标识符,看该标识符有没有被定义过。如果有,则一般是因为标识符的使用名与定义时的名称不一致,要特别注意大小写。

三,fatal error C1004: unexpected end of file found  即是“在文件末尾发现为终止的意外”

通常是‘}’不成对,特别是没有结束‘}’。

 


 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值