題目描述
輸入
輸出
樣例輸入
1 2 3
4 5 6
7 8 9
樣例輸出
1 4 7
2 5 8
3 6 9
代碼
//實現二維數組的行列互換,轉置
#include<iostream>
using namespace std;
int main()
{
int a[3][3];
int b[3][3];
int i,j;
//輸入原矩陣a
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cin>>a[i][j];
}
}
//行列互換,存入b
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
b[j][i]=a[i][j];
}
}
//輸出b
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
知識點: for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cin>>a[i][j];
}
}
(2)遍歷輸出for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
(3)遍歷逆序輸出for(int i=2;i>=0;i--){
for(int j=2;j>=0;j--){
printf("%d ",a[i][j]);
}
}
(4)最值問題#include <stdio.h>
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(max<a[i][j]){
max=a[i][j];
}
}
}
printf("%d \n",max);
}
#include <stdio.h>
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for(int i=0;i<3;i++){
max=a[i][0];
for(int j=0;j<3;j++){
if(max<a[i][j]){
max=a[i][j];
}
}
printf("第 %d 行的最大值是:%d\n",(i+1),max);
}
}
#include <stdio.h>
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
for(j=0;j<3;j++){
max=a[0][j];
for(i=0;i<3;i++)
if(max<a[i][j]){
max=a[i][j];
}
printf("第 %d 列的最大值是:%d \n",(j+1),max);
}
}
參考博客:http://blog.sina.com.cn/s/blog_796551fe0100vhcb.html
求該數組的對角線之和
將該數組的進行從小到大排序,每行,每列從小到大排序