• C++
  • 信奥【下午1】二维数组

  • @ 2024-4-20 15:34:54
课堂总结
1、什么是二维数组:在一维数组内再存一个一维数组

2、怎么定义:
数据类型 数组名[有多少行][有多少列]

3、怎么给二维数组赋初值(大括号赋值只能在初始化定义的时候用)
1)int ar[2][3]={{1,2},{3,4},{5,6}}
2)int ar[2][3]={1,2,3,4,5,6} //自动先行后列
3)int ar[2][3]={{1},{3}} //未赋值会自动补0
4)int ar[2][3]={1,3} //未赋值会自动补0

4、程序中赋值(行序号=行下标+1,列序号=列下标+1,下标从0开始)
int ar[2][3]={0};//建立一个二维数组,2行3列。
ar[1][1]=100;//给数组中的第二行第二列赋值100。

5、遍历的时候先行后列

6、理解储存单位
b  bit 位
B  byte=8b 字节
KB =1024*B  千字节
MB =1024*KB 兆字节
GB =1024*MB 千兆字节
TB =1024*GB 兆兆字节

image

作业: 1、矩阵交换行 image image

2、同行列对角线的格子 image image

5 条评论

  • @ 2024-4-27 14:07:04

    矩阵交换行 image

    • @ 2024-4-27 14:04:28

      image

      • @ 2024-4-27 14:00:34

        image

        • @ 2024-4-27 13:58:13
          #include<bits/stdc++.h>
          using namespace std;
          int main(){
          	int n,x,y;
          	cin>>n>>x>>y;
          	for(int i=1;i<=n;i++){
          		for(int j=1;j<=n;j++){
          			if(i==x){
          				printf("(%d,%d)",i,j);
          			}
          		}
          	}
          	cout<<endl;
          	for(int i=1;i<=n;i++){
          		for(int j=1;j<=n;j++){
          			if(i==y){
          				printf("(%d,%d)",i,j);
          			}
          		}
          	}
          	cout<<endl;
          	for(int i=1;i<=n;i++){
          		for(int j=1;j<=n;j++){
          			if(i+j==x+y){
          				printf("(%d,%d)",i,j);
          			}
          		}
          	}
          	cout<<endl;
          	for(int i=1;i<=n;i++){
          		for(int j=1;j<=n;j++){
          			if(i-j==x-y){
          				printf("(%d,%d)",i,j);
          			}
          		}
          	}
          	return 0;
          }
          
          • @ 2024-4-27 13:34:50
            using namespace std;
            #define N 5
            int main ()
            {
            	int ar[N][N]={0};
                for(int i=0;i<N;i++)
                {
            	    for(int j=0;j<N; j++)
                    {
            	    cin>>ar [i] [j];
                    }
                }
                int row1,row2,tmp;
                cin>>row1>>row2;
                if(row1>row2)
                {
            	    tmp=row1;
                    row1=row2;
                    row2=tmp;
            	}
                row1--;
                row2--;
                for(int i=0;i<N;i++)
                {
                	for(int j=0;j<N; j++)
                {
            	    if(i==row1)
                    {
            	        tmp=ar[i][j];
                        ar[i][j]=ar[row2][j];
                        ar[row2][j]=tmp;
                    }
                    cout<<ar[i][j]<<" ";
                }
                cout<<endl;
            	}
                return 0;
            }
            
            
          • 1