第六周C++作业(part 2)

2.编程实现课本每一个编程习题。

/**********从键盘上输入5个数,然后将它们按照从大到小的顺序输出********/

#include<iostream>
using namespace std;

int main()
{
	double a[5],b;
	int i,j,k,l;
	cout<<"请任意输入5个数"<<endl;
	for(i=0;i<5;i++)
		cin>>a[i];

	for(j=0;j<5;j++)
		{
			for(k=j;k<5;k++)
			if(a[k]>a[j])
			b=a[k],a[k]=a[j],a[j]=b;
		}

	cout<<"5个数从大到小排列依次为"<<":"<<endl;

	for(l=0;l<5;l++)
	{
		cout<<a[l]<<endl;
	}
return 0;
}

输出结果:

/**********从键盘上为数组a[2][3]输入任意整数值,显示该数组,
找出该数组的最大元素及其下标********/

#include<iostream>
using namespace std;

int main()
{
	double a[2][3];
	int max,num1,num2,i,j;
	cout<<"请任意输入6个数为数组赋值"<<endl;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
		cin>>a[i][j];
    cout<<"该数组所含的值为: "<<endl;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		cout<<a[i][j]<<"  ";
		cout<<endl;
	}

	max=a[0][0];
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
		{
			if(max<a[i][j])
				max=a[i][j],num1=i,num2=j;
		}

	cout<<"数组中最大的值为: "<<max<<endl;
	cout<<"它的下标值分别为i="<<num1<<" j="<<num2<<endl;

return 0;
}


/**********编写程序,统计Fibonacci数列前20个数中
有多少个3位数,并输出数列中的第16项数据。****************/

#include<iostream>
#include<iomanip>
using namespace std;


int main()
{
	int i,j=0;
	int f[20]={1,1};
	for(i=2;i<20;i++)
		f[i]=f[i-2]+f[i-1];
/*********以上为Fibonacci数列的前20个数**********/
	for(i=0;i<20;i++)
	{
		if(f[i]/100!=0&&f[i]/1000==0)
			j++;
	}
	cout<<"Fibonacci数列前20个数中有"<<j<<"个3位数"<<endl;
	cout<<"f[16]="<<f[15]<<endl;

	return 0;
}


 

/**********输入一行文字,统计其中大写字母、小写字母
空格、数字及其他字符的个数。********/

#include<iostream>
using namespace std;
#define N 50

int main()
{
	char s[N];
	int i=0,j=0,k=0,l=0,m=0,p;				//i统计大写字母,j统计小写字母,k统计空格,l统计数字,m统计其他字符
	cout<<"请任意输入一行小于50个字符的字符串"<<endl;
	cin.get(s,N);
	for(p=0;s[p]!='\0';p++)
	{
		if(s[p]>='A'&&s[p]<='Z')
			i++;
		else if(s[p]>='a'&&s[p]<='z')
			j++;
		else if(s[p]==' ')
			k++;
		else if(s[p]>='0'&&s[p]<='9')
			l++;
		else
			m++;
	}
	cout<<"大写字母个数为:"<<i<<endl;
	cout<<"小写字母个数为:"<<j<<endl;
	cout<<"空格个数为:"<<k<<endl;
	cout<<"数字个数为:"<<l<<endl;
	cout<<"其它字符个数为:"<<m<<endl;

return 0;
}

输出结果:

/**********输入一字符串,反向输出每一个字符,
并求此字符串的长度。****************/

#include<iostream>
#include<string.h>
using namespace std;
#define N 50


int main()
{
	char a[N],b[N];
	int i,j,k,l;
	cout<<"请任意输入一个小于50个字符的字符串"<<endl;
	cin.get(a,N);
	i=strlen(a);				//求a数组的长度
	k=i;
	for(j=0;a[j]!='\0';j++)		//将a数组的值全部传递给b数组
		b[j]=a[j];
	b[j]='\0';

	for(j=0;j<=i;j++)			//将a数组的值反向赋值
		a[j]=b[k-1],k--;
	a[j]='\0';
	cout<<"此字符串反向输出为:";
	for(l=0;l<=i;l++)			//输出a数组的值
		cout<<a[l];
		cout<<endl;
	cout<<"此字符串的长度为:"<<i<<endl;		//输出字符串的长度

	return 0;}



/**********输入一个字符串,将其中的所有数字删除,
并输出改动后的字符串及其长度,****************/

#include<iostream>
#include<string.h>
using namespace std;
#define N 50


int main()
{
	char a[N],b[N];
	int i,j=0,k=0,l;
	cout<<"请任意输入一个小于50个字符的字符串"<<endl;
	cin.get(a,N);
	i=strlen(a);				//求字符串去掉数字前的长度
	
	while(a[j]!='\0')
	{

		if(a[j]>='0'&&a[j]<='9')
				j++;
		else
			{
				b[k]=a[j];
				k++,j++;
			}
	
	}
		b[k]='\0';
	cout<<"去掉数字后的字符串为:";
	for(l=0;b[l]!='\0';l++)
		cout<<b[l];
		cout<<endl;

		i=strlen(b);        求字符串去掉数字后的长度
		cout<<"去掉数字后的字符串长度为:"<<i<<endl;
	return 0;
}



3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。

#include<iostream>
using namespace std;

int main()
{
	int i, j,l;
	int a[4][5],b[5][3],c[4][3];  //a行b列矩阵乘b行c列矩阵会得到a行c列矩阵。
	cout<<"请给数组a[4][5]赋值"<<endl;
		for(i=0;i<4;i++)
			for(j=0;j<5;j++)
				cin>>a[i][j];
	cout<<"请给数组b[5][3]赋值"<<endl;
		for(i=0;i<5;i++)
			for(j=0;j<3;j++)
				cin>>b[i][j];
/**************以上为a,b两个数组赋值***********/
	cout<<"数组a[4][5]的值为:"<<endl;
		for(i=0;i<4;i++)
		{
			for(j=0;j<5;j++)
				cout<<a[i][j]<<'\t';
			cout<<endl;
		}
	cout<<"数组b[5][3]的值为:"<<endl;
		for(i=0;i<5;i++)
		{
			for(j=0;j<3;j++)
				cout<<b[i][j]<<'\t';
			cout<<endl;
		}
/**************以上为输出a,b两个数组的值***********/
		for(i=0;i<4;i++)
		{
			for(j=0;j<3;j++)
			{	
				c[i][j]=0;
					for(l=0;l<5;l++)
					{
						c[i][j]+=a[i][l]*b[l][j];
					}
			}
		}
/**************求c[4][3]的值**********************/
		cout<<"a[4][5]*b[5][3]="<<endl;
		for(i=0;i<4;i++)
		{
			for(j=0;j<3;j++)
				cout<<c[i][j]<<'\t';
			cout<<endl;
		}
	return 0;
}

4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这里提供一个简单的魔兽世界Part 1的C++代码示例,仅供参考: ```c++ #include <iostream> #include <string> using namespace std; // 定义士兵类 class Soldier { public: string name; // 名字 int health; // 生命值 int attack; // 攻击力 int id; // 编号 static int count; // 静态变量,记录士兵数量 // 构造函数 Soldier(string name, int health, int attack) { this->name = name; this->health = health; this->attack = attack; this->id = ++count; // 每次创建士兵时,编号自增 } // 获取士兵信息 string getInfo() { return "编号:" + to_string(id) + " 姓名:" + name + " 生命值:" + to_string(health) + " 攻击力:" + to_string(attack); } // 攻击敌人 void attackEnemy(Soldier& enemy) { cout << "编号为" << id << "的" << name << "攻击了编号为" << enemy.id << "的" << enemy.name << endl; enemy.health -= attack; if (enemy.health <= 0) { cout << "编号为" << enemy.id << "的" << enemy.name << "被" << name << "杀死了" << endl; } } }; int Soldier::count = 0; int main() { Soldier s1("张飞", 100, 20); Soldier s2("关羽", 120, 30); cout << s1.getInfo() << endl; cout << s2.getInfo() << endl; s1.attackEnemy(s2); s2.attackEnemy(s1); return 0; } ``` 以上代码实现了一个简单的士兵类,包括了姓名、生命值、攻击力和编号等属性,以及获取士兵信息和攻击敌人的方法。在main函数创建了两个士兵对象s1和s2,并调用了它们的攻击敌人方法,输出了相应的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值