5题c++编程题目(按实验报告格式书写)答完整4题目可拿分~(答对追加)

题目:
一.程序运行后在屏幕上有提示:“Please input int matrix B[3][3]:”也就是提示输入9个整数,并存入二维数

组B中,再提示输入另外的9个数并放到二维数组C〔3〕〔3〕中。
输入完毕后,输出两矩阵的值,将两个矩阵相乘,并按下图中的格式进行输出。

二.1.在主函数中正确输入每个学生的学号及各科成绩,输入时有必要的提示信息。
2.设计求每个学生各科平均成绩的子函数;
3.设计求每门课程的平均成绩子函数;
4.在主函数中进行数据的输出。要求:输出格式清晰、规范。

输入示例:
请按以下顺序输入:学号、数学、语文、英语:
30801110 80 90 70
30801111 80 60 70
30801213 60 70 65

输出示例:
学号30801110的各科平均成绩为80
学号30801110的各科平均成绩为70
学号30801110的各科平均成绩为65

数学平均成绩为73
语文平均成绩为73
英语平均成绩为68

三,假设有n项物品,大小分别为s1,s2,...,si,...,sn,其中si满足:1 <= si <= 100的整数。问题是要把这些物

品装入到容量为100的一批箱子(序号1~n)中。装箱方法是:对每项物品si, 依次扫描所有这些箱子,把si放入足以

能够容下它的第一个箱子中。写一个程序(n<=80)来模拟这个装箱的过程,并输出每个物品所在的箱子序号。最后输出

所需的箱子数目。
输入要求:先输入n,再输入n个物品的大小值。
输出要求:按输入的物品顺序输出每个物品所在的箱子编号;并输出所需箱子总数。

四,超市门口的存包柜有n个存包箱,并且有1个投币开箱控制器,每个逛超市的顾客若要存一下自己的手提包后小件

物品时,只要往控制器投入1个1元的硬币,如果有空的箱子,就会自动打开一个空的箱子,并且自动打印输出一张小

小的密码纸条;如果箱子没有空,则提示本柜已满。当顾客离开超市时,用密码纸条上指定的数字密码依次输入到开

箱控制器,则顾客所存包的箱子门就自动打开,顾客取走物品后,关上门。请编写开箱控制程序实现上述过程。
输入数据时,可先输入存包柜总数n,再由用户选择是“投硬币”还是“输密码”。
如果“投硬币”,则只有硬币值是1才开箱。如果有空柜,则输出空柜编号及密码(长度自定);如果无空柜,则提示

:“本柜已满”。
如果“输密码”,如果输入的密码与某一柜子密码相符,则显示打开的柜子编号,否则输出提示:“密码错误”。

五,医院有A、B、C、D、E、F、G 7位大夫,在一星期内(星期一至星期天)每人要轮流值班一天,如果已知:
(1) A大夫比C大夫晚1天值班;
(2) D大夫比E大夫晚1天值班;
(3) E大夫比B大夫早2天值班
(4) B大夫比G大夫早4天值班;
(5) F大夫比B大夫晚1天值班;
(6) F大夫比C大夫早1天值班;
(7) F大夫星期四值班。
就可以确定周一至周日的值班人员分别为:E、D、B、F、C、A、G。

输入要求:先输入一个整数n,再输入n组条件,要求根据输入的条件能够确定唯一的值班表,且输入的n组条件中能够

直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、

(5)可以间接得到A与B的关系。
条件输入格式有2种:
格式1:编号 比较运算符 编号 天数
其中比较运算符有2种: > 或 < ,分别表示“早”或“晚”
例如:A<C1 表示: A大夫比C大夫晚1天值班
格式2:编号 = 数值
例如:F=4 表示: F大夫在星期四值班

输出要求:根据输入信息,输出每位大夫在星期几值班。
解题思路+关键算法描述+编程代码也可~~省去些你们的麻烦~~~

第1个回答  推荐于2016-11-25
1:
不晓得你要实现什么乘法,所以只有写输入和对应元素相乘了。
int a[3][3];
int b[3][3];
int c[3][3];
for(int i=0;i<3;i++)//输入
{
for(int j=0;j<3;j++)
{
cin>>a[i][j];
}
}

for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
c[i][j]=a[i][j]*b[i][j];
}
}
2:
#include<iostream>
#include<string>
using namespace std;

class Student
{
public:
string num;
int score[3];
int ave(int score[]);
private:
int i;

};

int Student::ave(int score[])
{
double ave_num;
double sum=0;
for(i=0;i<3;i++)
sum+=score[i];
ave_num=sum/3;
cout<<ave_num<<endl;
return 0;
}

int main()
{
int count;
int sum=0;
int i=0;
int ave_ke_num[20];
cin>>count;
Student Stu[count];
string str[3]={"数学:","语文:","英语:"};
while(i<count)
{
cout<<"输入:"<<endl;
cin>>Stu[i].num>>Stu[i].score[0]>>Stu[i].score[1]>>Stu[i].score[2];
i++;
}
for(i=0;i<count;i++)
{
Stu[i].ave(Stu[i].score);
}
for(int j=0;j<3;j++)
{
for(i=0;i<count;i++)
{
sum+=Stu[i].score[j];
}
ave_ke_num[j]=sum/count;
cout<<str[j]<<ave_ke_num[j]<<endl;
sum=0;
}
system("pause");
return 0;
}

3:
int cage[80];
int thi[80];
int i=0;
for(int j=0;j<80;j++)
{
int left=cage[j];
while(left>=0&&i<80)
{
left=cage[j]-thi[i++];
}
i=i-1;
}
4:
int n;
int i;
cin>>n;
int box[n];
int num[20];
int code;
int box_num;
for(i=0;i<n;i++)
{
box[i]=0;
}
string str;
while(cin>>str)
if(str=="存")
{
for(i=0;i<n;i++)
{
if(box[i]==0)
{
box[i]==1;
cin>>code;
num[i]=code;
}
break;
}
}
else if(str=="取")
{
cin>>box_num>> code;
if(code==num[box_num])
cout<<"第"<<box_num<<"号储物柜打开"<<endl;
else
cout<<"密码错误"<<endl;
}

5:
int n;
int i;
int j;
cin>>n;
char ch[4];
int num[7]={A,B,C,D,E,F,G};
enum{A=1;B,C,D,E,F,G};
string str;
for(i=0;i<n;i++)
{
cin>>str;//对初始num排序,每次都只做交换操作。
strcpy(ch,str.c_str());
for(j=0;j<7;j++)
{
if(ch[1]=='=')
{
swap(num[ch[0]],num[ch[2]]);
}
if(ch[1]=='>')//E>B
{
if(ch[2]-1>=0)
swap(num[ch[0]],num[ch[2]-1]);
else
swap(num[ch[2]],num[ch[0]+1]);
}
if(ch[1]=='<')
{
if(ch[2]+1<=7)
swap(num[ch[0]],num[ch[2]+1]);
else
swap(num[ch[2]],num[ch[0]-1]);
}
}
}本回答被提问者采纳
相似回答