学习笔记《计算机程序设计C++》第4周中级练习

第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[</
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值