1.    打印乘法表

【问题描述】

用for循环实现输出1至9的乘法表

【样例输出】

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

#include<iostream>
using namespace std;
int main(){
    for(int i=1;i<=9;i++){        
        for(int j=1;j<=i;j++){
            cout<<j<<"*";
            cout<<i<<"="<<j*i<<" ";                
        }
        cout<<endl;
    }
    return 0;
}

2.    矩阵交换

【问题描述】

给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。

输入:输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。
第6行包含两个整数m、n(1 <= m,n< = 5),以一个空格分开。

输出:输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。

【样例输入】

1 2 2 1 2

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

3 0 8 2 4

1 5

【样例输入】

3 0 8 2 4

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

1 2 2 1 2

#include<iostream>
using namespace std;
int main(){
    //定义要交换的行数 
    int r1,r2;
    //定义一个五行五列的二维数组 
    int a[5][5]={};
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            cin>>a[i][j];
        }
    }
    //输入你要交换的行和列 
    cin>>r1>>r2;
    for(int i=0;i<5;i++){
        swap(a[r1-1][i],a[r2-1][i]);
    }
    for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

1.    打印杨辉三角

【问题描述】

打印杨辉三角形的前10行,杨辉三角形如下:

    1

1 1

  1 2 1

 1 3 3 1

1 4 6 4 1

【样例输出】

         1

        1 1

       1 2 1

      1 3 3 1

     1 4 6 4 1

    1 5 10 10 5 1

   1 6 15 20 15 6 1

  1 7 21 35 35 21 7 1

 1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

#include<iostream>
using namespace std;
int main()
{    
    //定义一个十行十列的数组 
    int a[10][10];
    //先遍历行 
    for(int i=0;i<10;i++){   
        //先把空格打出来 
        for(int h=0;h<10-i;h++){
            cout<<" ";
        } 
        
        
        for(int j=0;j<=i;j++){
            if(j==0||j==i)
            {
                a[i][j]=1;
            }
            else {        
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

2.    扫雷游戏地雷数计算

【问题描述】

扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。

注:每个格子周围格有八个:上、下、左、右、左上、右上、左下、右下。

输入:第一行包含两个整数n和m,分别表示雷区的行数和列数。1 <= n <= 100, 1 <= m <= 100。接下来n行,每行m个字符,‘*’表示相应格子中是地雷,‘?’表示相应格子中无地雷。字符之间无任何分隔符。

输出:n行,每行m个字符,描述整个雷区。若相应格中是地雷,则用‘*’表示,否则用相应的周围格地雷数表示。字符之间无任何分隔符。

【样例输入】

3 3

*??

???

?*?

【样例输出】

*10

221

1*1

#include <iostream>
using namespace std;
int main(){
    int n,m,cnt=0;
    char a[102][102];
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        } 
    }         
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(a[i][j]!='*'){
                if(a[i-1][j-1]=='*') cnt++;
                if(a[i-1][j]=='*') cnt++;
                if(a[i-1][j+1]=='*') cnt++;
                if(a[i][j-1]=='*') cnt++;
                if(a[i][j+1]=='*') cnt++;
                if(a[i+1][j-1]=='*') cnt++;
                if(a[i+1][j]=='*') cnt++;
                if(a[i+1][j+1]=='*') cnt++;
                cout<<cnt;
                cnt=0;
            }
            else{
                cout<<"*";
            } 
        }
        cout<<" "<<endl;
    }    
    return 0;
}

3.    二维数组右上左下遍历

【问题描述】

给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。

输入:输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0 < row < 100, 0 < col < 100)

输出:按遍历顺序输出每个整数。每个整数占一行。

【样例输入】

3 4

1 2 4 7

3 5 8 10

6 9 11 12

【样例输出】

1 2 3 4 5 6 7 8 9 10 11 12

#include <iostream>
using namespace std;

int main(){
    int r,c,max;
    cin>>r>>c;
    max=r+c-1;
    int a[101][101];
    for(int i=0;i<r;i++){
        for(int j=0;j<c;j++){
            cin>>a[i][j];
        }         
    } 
    for(int k=max;k;k--){ //3 4
        for(int j=max-k,i=0;i<r;j--,i++){
            if(j>=0&&j<c) 
            cout<<a[i][j]<<" ";
        }
    }
    return 0;
}