赛码网训练1-读取未给出行列数的矩阵

 一、问题

对于给定的一个二维矩阵,请转置后进行输出。

输入描述

对于一个n*m的矩阵,输入有n行,每行是m个以空格分隔的数字。

输出描述

n*m矩阵的转置矩阵。输出m行,每行是n个空格分隔的数据。

输入示例:

1 2 3
4 5 6

输出示例:

1 4
2 5
3 6

二、代码

end=''
arr=[]
#创建输入,将结果保存在arr中
for i in iter(input,end):
    s=list(map(int,i.split()))
    arr.append(s)
#创建循环,利用索引将需要的数字按照指定顺序输出
for i in range(len(arr[0])):
    ar=[]
    for j in range(len(arr)):
        ar.append(arr[j][i])
    result=' '.join(str(k) for k in ar)#将空格加入到字符串中
    print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个可以读取给出行列矩阵并将其转置输出的C++代码示例: ```c++ #include <iostream> #include <vector> using namespace std; int main() { vector<vector<int>> matrix; // 定义二维矩阵 int num; while (cin >> num) { // 持续读入整,以 EOF 结束 vector<int> row; // 定义一行 row.push_back(num); // 将整添加到一行中 char c = getchar(); // 读取一个字符 if (c == '\n' || c == EOF) { // 如果该行结束 matrix.push_back(row); // 将一行添加到矩阵中 if (c == EOF) { // 如果到达文件末尾,退出循环 break; } } else if (c == ' ') { // 如果该行还结束 while (cin >> num) { // 持续读入整,直到该行结束 row.push_back(num); // 将整添加到一行中 c = getchar(); // 读取一个字符 if (c == '\n' || c == EOF) { // 如果该行结束 matrix.push_back(row); // 将一行添加到矩阵中 row.clear(); // 清空行向量 if (c == EOF) { // 如果到达文件末尾,退出循环 break; } break; // 开始新的一行 } } } } int rows = matrix.size(); // 矩阵的行 int cols = matrix[0].size(); // 矩阵的列 vector<vector<int>> transpose(cols, vector<int>(rows)); // 定义转置矩阵 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { transpose[j][i] = matrix[i][j]; // 进行矩阵转置 } } // 输出转置矩阵 for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { cout << transpose[i][j] << " "; } cout << endl; } return 0; } ``` 这个代码使用了二维动态组 vector 来实现矩阵的存储和转置,可以处理不确定行列矩阵输入,并输出转置后的矩阵

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值