第六章课后题

课后1

/**********编写程序,将10个整型数2,4,6……18和20
赋予一个数组,然后使用指针输出该数组各元素的值*******/


#include <iostream>
using namespace std;

int main()
{
	int a[10],*p,i;
	for(i=1;i<11;i++)
		a[i-1]=2*i;
	p=a;
	for(i=0;i<10;i++)
		cout<<*p<<'  ';
	cout<<endl;
}

课后2

/********把键盘输入的一个大写字母串改小写字符并显示出来,
其中大小写转换使用自定义函数lower()实现*********/

#include <iostream>
using namespace std;

void lower(char *p)
{
	while (*p!='\0')
	{
		if(*p<='Z'&&*p>='A')
		{
			*p+=32;
			p++;
		}
		else
			p++;
	}
}
int main ()
{
	char a[50],i;
	cout<<"please input a string "<<endl;
	cin.get(a,50);
	lower(a);
	cout<<"the string after change:";
	for(i=0;a[i]!='\0';i++)
		cout<<a[i];
	cout<<endl;
	return 0;
}

课后3

/*******输入一个字符串,删除其中的所有空格后输出*******/

#include <iostream>
using namespace std;

int main()
{
	char a[50],b[50];
	int i,j=0;
	cout<<"please input a string"<<endl;
	cin.get(a,50);
	for(i=0;a[i]!='\0';i++)
	{
		if(a[i]!='  ')
		{
			b[j]=a[i];
			j++;
		}
	}
	b[i]='\0';
	for(i=0;b[i]!='\0';i++)
		cout<<b[i];
	cout<<endl;

	return 0;
}




课后4

/**********编写程序,当输入整数1-12月份时,输出该月的英文名称,
输入其他的整数时结束程序。例如,输入4,则输出April;输入0时,
则退出程序,要求使用指针数组处理****************/


#include <iostream>
using namespace std;

int main()
{
	char*month[]={"January","February","March","April","May","June","July",
	            	"August","September","October","November","December"};

	int i;

	while (1)
	{
		cout<<"please input a number ,input 0 to exit:"<<endl;
		cin>>i;
		if(i==0)
			break;
		else if(i<0||i>12)
			cout<<"input error,please input another number!"<<endl;
		else 
			cout<<month[i-1]<<endl;
	}
	return 0;
}

课后5

/*********分别使用指针数组和二级指针输入,
输出一个二维整型数组****************/

#include <iostream>
using namespace std;

int main()
{
	int a[2][3],*p[2];
	int **pp;
	int i,j;
	p[0]=a[0],p[1]=a[1];
	cout<<"please input 6 numbers"<<endl;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			cin>>p[i][j];
		pp=p;
		cout<<"the number you input is :"<<endl;
		for(i=0;i<2;i++)
			for(j=0;j<3;j++)
				cout<<*(p[i]+j)<<"  ";
			cout<<endl;
			cout<<"the number you input is :"<<endl;
			for(i=0;i<2;i++)
			for(j=0;j<3;j++)
				cout<<*(pp[i]+j)<<"  ";
			cout<<endl;

			return 0;
}

课后6

/*********输入一个3x4的矩阵,编写函数,求其中的最大的元素*********/

#include <iostream>
using namespace std;

int main()
{
	int a[3][4],i,j,max;
	cout<<"输入一个3x4的矩阵"<<endl;
	for(i=0;i<3;i++)
		for(j=0;j<4;j++)
			cin>>a[i][j];
		cout<<"你输入的矩阵为:"<<endl;
		for(i=0;i<3;i++)
		{
			for(j=0;j<4;j++)
				cout<<a[i][j]<<'\t';
			cout<<endl;
		}
		max=a[0][0];
		for(i=0;i<3;i++)
			for(j=0;j<4;j++)
			{
				if(max<a[i][j])
					max=a[i][j];
			}
			cout<<"矩阵的最大值为:"<<max<<endl;
			return 0;
}

题目:有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子,问最后退出圈子的人是原来的几号。

/********围成圈*********/
#include <iostream>
using namespace std;

int main()
{
	int n,i,j=1;
	cout<<"请输入一个数字"<<endl;
	cin>>n;
	cout<<"最后退出圈子的人是原来的";
	for(i=1;i<n+1;i++)
	{
		if(j%3==0)
			cout<<i<<"  ";
		j++;
	}
	cout<<"号";
	cout<<endl;
	return 0;
}

4.一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),定义函数来完成下面功能:

    计算第2门课成的平均分;

    找出有2门以上成绩不及格的学生,并输出其学号和全部课程成绩;

    找出平均成绩在90以上或者全部课程在85分以上的学生。

/**********找学生*********/

#include <iostream>
using namespace std;

void fun0(int n)
{
	char name[5][5]={"zhao","sun","qian","chen","li"};
	cout<<"姓名:"<<name[n]<<'\t';
}

void fun1(int a,int b,int c,int d,int e)
{
	double ave;
	ave=double(a+b+c+d+e)/5;
	cout<<"第2门课程的平均分为"<<ave<<"分"<<endl;
	cout<<endl;
}

void fun2(int*a)
{
	int i,j=0,*b;
	b=a;
	a++;
	for(i=1;i<5;i++)
	{
		if (*a<60)
			a++,j++;
		else
			a++;
	}
	if(j>=2)
	{
		int i;
		fun0(a[0]);
		cout<<"学号:"<<*b<<'\t';
		b++;
		cout<<"四科成绩分别为:";
		for(i=0;i<4;i++,b++)
			cout<<*b<<'\t';
		cout<<endl;
	}
}

void fun3(int *a)
{
	int i,*b,*c,j=0,sum=0;
	double ave;
	b=c=a;
	a++;b++;
	for(i=0;i<4;i++,a++)
		sum+=*a;
	ave=double(sum)/4;

	for(i=0;i<4;i++)
	{
		if(*b>=85)
			b++,j++;
		else
			b++;
	}

	if(j==4||ave>=90)
	{
		fun0(a[0]);
	}
}
int main()
{
	int zhao[]={1,96,90,80,65};
	int qian[]={2,86,85,86,87};
	int sun[]={3,55,45,60,35};
	int li[]={4,95,95,95,95};
	int chen[]={5,55,56,55,56};


	fun1(zhao[2],qian[2],sun[2],li[2],chen[2]);
	cout<<"2门以上成绩不及格的学生有"<<endl;
	fun2(zhao);
	fun2(qian);
	fun2(sun);
	fun2(li);
	fun2(chen);
	cout<<"平均成绩在90以上或者全部课程在85分以上的学生有"<<endl;
	fun3(zhao);
	fun3(qian);
	fun3(sun);
	fun3(li);
	fun3(chen);
	cout<<endl;



	return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值