第4周中级练习
依照学术诚信条款,我保证此作业是本人独立完成的。
温馨提示:
1.本次作业属于Online Judge题目,提交后由系统即时判分。
2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。
1矩阵原地转置(10分)
题目内容:
编写程序,将N(N<=10)阶方阵(整型)原地转置(只能使用一个二维数组),例如:
转置前的方阵A
5 6 7 9
2 8 5 4
3 7 16 15
1 4 8 11
转置后的方阵A
5 2 3 1
6 8 7 4
7 5 16 8
9 4 15 11
注意:转置要使矩阵本身作转置运算,而不仅是在屏幕显示转置效果。
输入格式:
N+1行,第1行:数字N(10>=n>0);第2-(N+1)行:N阶方阵的元素
输出格式:
N行,转置后的矩阵。每行数据间用一个空格隔开,末尾无空格。
输入样例:
4
5 6 7 9
2 8 5 4
3 7 16 15
1 4 8 11
输出样例:
5 2 3 1
6 8 7 4
7 5 16 8
9 4 15 11
时间限制:500ms内存限制:32000kb
C++
#include
using namespace std;
int a[100][100];
int main(){
int n;
cin>>n;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
cin>>a[i][j];
for(int i=0;i<n;++i)
for(int j=i;j<n;++j){
int tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
for(int i=0;i<n;++i){
for(int j=0;j<n-1;++j)
cout<<a[i][j]<<" ";
cout<<a[i][n-1]<<endl;
}
return 0;
}
用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 256kb
2
用例2通过 2ms 380kb
2
用例3通过 14ms 256kb
2
用例4通过 2ms 372kb
2
用例5通过 2ms 256kb
2
提交答案本次得分/总分:10.00/10.00分
2判断对称矩阵(10分)
题目内容:
判断一个N阶整型矩阵是否为对称矩阵。要求矩阵用一维数组存储。
输入格式:
N+1行,第1行:数字N(10>n>0);第2-(N+1)行:N阶方阵的元素
输出格式:
“Yes”或“No”
输入样例:
4
5 6 7 9
2 8 5 4
3 7 16 15
1 4 8 11
输出样例:
No
时间限制:500ms内存限制:32000kb
C++
#include
using namespace std;
int a[100][100];
bool isdcjj(int n){
for(int i=0;i<n;++i)
for(int j=i;j<n;++j){
if(a[i][j]!=a[j][i])
return 0;
}
return 1;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j)
cin>>a[i][j];
if(isdcjj(n))cout<<“Yes”;
else cout<<“No”;
return 0;
}
用例测试结果 运行时间 占用内存 提示 得分
用例1通过 2ms 232kb
2
用例2通过 2ms 364kb
2
用例3通过 7ms 256kb
2
用例4通过 2ms 236kb
2
用例5通过 3ms 236kb
2
提交答案本次得分/总分:10.00/10.00分
3去掉字符串末尾的空格(10分)
题目内容:
编写程序,去掉字符串末尾的空格符。要求字符串用字符数组存放,不使用库函数。结果要显示原字符串和删除末尾空格后的字符串。字符串长度不超过100.
输入格式:
一个字符串
输出格式:
两行:第一行,原字符串;第二行,删除末尾空格后的字符串。注意,将原字符串和删除空格后的字符串均放到‘|’’|’中。
输入样例:
strd sdf
输出样例:
|strd sdf |
|strd sdf|
时间限制:500ms内存限制:32000kb
C++
#include<iostream>
using namespace std;
char a[</