• 语法基础(数组)



    作者:进击攻城狮
    个人主页:欢迎访问我的主页
    首发时间:2022年8月22日星期一
    订阅专栏:刷题
    个人信条:星光不问赶路人,岁月不负有心人。
    如果文章有错误,欢迎在评论区指正。
    🎉 支持我:点赞👍+收藏⭐️+留言📝


    在这里插入图片描述

    748.数组的右下半部分

    输入一个二维数组 M[12][12]M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和。

    右下半部分是指次对角线下方的部分,如下图所示,黄色部分为对角线,绿色部分为右下半部分:

    UOJ_1186.png

    输入格式

    第一行输入一个大写字母,若为 S,则表示需要求出右下半部分的元素的和,若为 M,则表示需要求出右下半部分的元素的平均值。

    接下来 1212 行,每行包含 1212 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1i+1 行的第 j+1j+1 个数表示数组元素 M[i][j]M[i][j]。

    输出格式

    输出一个数,表示所求的平均数或和的值,保留一位小数

    数据范围

    −100.0≤M[i][j]≤100.0−100.0≤M[i][j]≤100.0

    输入样例:
    S
    9.7 -4.9 6.1 -6.1 -9.6 1.0 -3.2 0.6 3.2 -9.8 4.9 1.2
    -2.8 -5.3 2.8 -1.9 -5.4 7.5 -2.0 5.7 2.3 5.3 -7.5 8.9
    6.0 4.3 3.8 -6.7 8.1 -0.5 7.8 -2.2 -1.0 4.0 -4.9 -9.4
    5.4 3.7 -6.5 -3.9 -3.3 4.1 -2.5 -4.7 8.2 1.4 1.8 4.7
    2.4 9.0 -4.3 9.6 8.6 -6.1 -7.4 8.6 5.6 0.5 -0.4 5.2
    -5.2 2.9 -5.6 4.0 -0.2 3.8 -4.1 -1.6 -3.8 -3.1 -1.1 3.3
    -9.4 -1.4 0.6 6.5 -4.3 -8.3 6.1 2.9 -5.2 2.5 9.8 -7.7
    -2.9 -3.6 7.9 -5.8 -4.7 8.2 -6.2 1.0 7.4 -1.0 -4.4 -4.5
    0.1 9.5 4.9 1.5 0.8 -8.2 0.4 9.5 -0.8 -0.9 9.7 -2.1
    0.1 -7.6 7.8 -6.9 5.5 1.4 4.0 7.8 1.0 -1.2 9.7 -1.9
    -4.6 2.3 -5.5 8.2 -4.8 -3.7 5.4 0.2 -2.4 -0.8 7.4 0.0
    -0.1 8.2 0.8 -3.5 -7.6 -0.5 5.6 8.4 -8.6 0.9 9.0 -7.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    输出样例:
    53.0
    
    • 1

    #include
    using namespace std;
    int main(){
        double a[12][12],sum=0;
        char k;
        cin>>k;
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
                cin>>a[i][j];
            }
        }
        if(k=='S'){
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i+j>11){
                   sum+=a[i][j];
               }
            }
        }
    }
    else{
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i+j>11){
                   sum+=a[i][j];
               }
            }
        }
        sum/=66;
    }
    printf("%.1lf",sum);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    746. 数组的左下半部分

    输入一个二维数组 M[12][12]M[12][12],根据输入的要求,求出二维数组的左下半部分元素的平均值或元素的和。

    左下半部分是指主对角线下方的部分,如下图所示,黄色部分为对角线,绿色部分为左下半部分:

    UOJ_1184.png

    输入格式

    第一行输入一个大写字母,若为 S,则表示需要求出左下半部分的元素的和,若为 M,则表示需要求出左下半部分的元素的平均值。

    接下来 1212 行,每行包含 1212 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1i+1 行的第 j+1j+1 个数表示数组元素 M[i][j]M[i][j]。

    输出格式

    输出一个数,表示所求的平均数或和的值,保留一位小数。

    数据范围

    −100.0≤M[i][j]≤100.0−100.0≤M[i][j]≤100.0

    输入样例:
    S
    8.7 5.6 -2.0 -2.1 -7.9 -9.0 -6.4 1.7 2.9 -2.3 8.4 4.0
    -7.3 -2.1 0.6 -9.8 9.6 5.6 -1.3 -3.8 -9.3 -8.0 -2.0 2.9
    -4.9 -0.5 -5.5 -0.2 -4.4 -6.1 7.6 6.9 -8.0 6.8 9.1 -8.5
    -1.3 5.5 4.6 6.6 8.1 7.9 -9.3 9.6 4.6 0.9 -3.5 -4.3
    -7.0 -1.2 7.0 7.1 -5.7 7.8 -2.3 4.3 0.2 -0.4 -6.6 7.6
    -3.2 -5.4 -4.7 4.7 3.6 8.8 5.1 -3.1 -2.9 2.8 -4.3 -1.4
    -1.8 -3.3 -5.6 1.8 8.3 -0.5 2.0 -3.9 -1.0 -8.6 8.0 -3.3
    -2.5 -9.8 9.2 -0.8 -9.4 -0.5 1.6 1.5 3.4 -0.1 7.0 -6.2
    -1.0 4.9 2.2 -8.7 -0.9 4.8 2.3 2.0 -3.2 -7.5 -4.0 9.9
    -1.1 -2.9 8.7 3.6 7.4 7.8 10.0 -9.0 1.6 8.3 6.3 -5.8
    -9.9 0.6 2.0 -3.8 -6.3 0.6 7.3 3.8 -7.1 9.5 2.2 1.3
    -2.8 -9.1 7.1 -0.2 0.6 -6.5 1.1 -0.1 -3.6 4.0 -5.4 1.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    输出样例:
    -2.8
    
    • 1
    #include
    using namespace std;
    int main(){
        double a[12][12],sum=0;
        char k;
        cin>>k;
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
                cin>>a[i][j];
            }
        }
        if(k=='S'){
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i>j){
                   sum+=a[i][j];
               }
            }
        }
    }
    else{
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i>j){
                   sum+=a[i][j];
               }
            }
        }
        sum/=66;
    }
    printf("%.1lf",sum);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    750. 数组的下方区域

    输入一个二维数组 M[12][12]M[12][12],根据输入的要求,求出二维数组的下方区域元素的平均值或元素的和。

    数组的两条对角线将数组分为了上下左右四个部分,如下图所示,黄色部分为对角线,绿色部分为下方区域:

    UOJ_1188.png

    输入格式

    第一行输入一个大写字母,若为 S,则表示需要求出下方区域的元素的和,若为 M,则表示需要求出下方区域的元素的平均值。

    接下来 1212 行,每行包含 1212 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1i+1 行的第 j+1j+1 个数表示数组元素 M[i][j]M[i][j]。

    输出格式

    输出一个数,表示所求的平均数或和的值,保留一位小数。

    数据范围

    −100.0≤M[i][j]≤100.0−100.0≤M[i][j]≤100.0

    输入样例:
    S
    -6.0 0.7 -8.4 -5.7 -4.1 7.6 9.5 -9.7 4.1 0.6 -6.5 -4.9
    6.6 4.9 -3.1 5.3 0.3 -4.5 3.9 -1.5 6.6 7.0 5.1 2.5
    -8.5 1.8 -2.7 0.1 -4.9 -7.2 4.3 6.0 -1.4 2.7 -3.0 2.0
    4.8 -7.0 -1.3 0.8 1.0 4.5 -1.1 -2.9 -3.9 -3.9 -8.9 5.8
    -2.1 -9.6 5.1 0.2 1.0 -1.7 6.4 4.1 2.8 -6.9 2.4 9.3
    -6.0 -9.1 -7.0 -7.0 7.8 5.1 6.9 -7.6 0.4 -7.2 5.5 6.0
    -1.9 5.5 1.9 -8.5 -5.3 2.3 -9.3 2.0 -0.2 1.2 5.6 -1.8
    8.2 2.3 3.5 1.4 4.0 -5.1 -6.9 -2.8 1.7 -7.0 7.8 1.8
    -6.0 -4.1 -4.6 -9.4 -4.9 -4.1 4.2 6.3 -2.8 8.7 8.1 -0.9
    8.8 -6.5 -4.3 6.1 -6.2 -3.9 -7.0 7.3 5.0 -0.9 -0.0 5.6
    -2.4 1.4 8.5 -2.2 0.9 5.3 3.6 8.8 -8.1 3.0 -3.1 6.5
    -3.8 -6.4 2.3 4.2 -9.8 -0.3 -9.9 -7.4 3.5 1.5 -0.2 7.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    输出样例:
    -11.9
    
    • 1
    #include
    using namespace std;
    int main(){
        double a[12][12],sum=0;
        char k;
        cin>>k;
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
                cin>>a[i][j];
            }
        }
        if(k=='S'){
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i>j&&i+j>11){
                   sum+=a[i][j];
               }
            }
        }
    }
    else{
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i>j&&i+j>11){
                   sum+=a[i][j];
               }
            }
        }
        sum/=30;
    }
    printf("%.1lf",sum);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    752. 数组的右方区域

    输入一个二维数组 M[12][12]M[12][12],根据输入的要求,求出二维数组的右方区域元素的平均值或元素的和。

    数组的两条对角线将数组分为了上下左右四个部分,如下图所示,黄色部分为对角线,绿色部分为右方区域:

    UOJ_1190.png

    输入格式

    第一行输入一个大写字母,若为 S,则表示需要求出右方区域的元素的和,若为 M,则表示需要求出右方区域的元素的平均值。

    接下来 1212 行,每行包含 1212 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1i+1 行的第 j+1j+1 个数表示数组元素 M[i][j]M[i][j]。

    输出格式

    输出一个数,表示所求的平均数或和的值,保留一位小数。

    数据范围

    −100.0≤M[i][j]≤100.0−100.0≤M[i][j]≤100.0

    输入样例:
    S
    2.4 7.8 9.4 -5.6 6.9 -4.9 4.8 0.8 3.6 1.7 -1.4 9.7
    -6.8 -3.7 -2.0 -4.9 -4.5 -5.3 6.1 7.5 -4.3 5.9 -9.5 9.7
    -6.5 -0.4 1.6 3.7 -4.4 -3.3 1.9 7.7 -1.4 4.5 7.4 -3.0
    -1.2 0.4 9.8 9.8 -4.3 -1.3 -1.6 0.5 2.8 -4.0 8.5 3.9
    0.2 -2.0 -6.4 -9.8 3.7 -2.0 1.7 -3.6 -3.4 2.4 -1.2 -3.9
    -8.3 5.8 -1.0 -4.4 1.0 -2.4 2.8 -4.6 2.1 8.7 -6.8 -8.3
    6.3 -6.8 -7.0 9.3 -7.7 -1.7 8.2 -6.5 -1.8 6.7 8.2 4.4
    0.4 8.6 -1.2 8.6 -4.6 1.8 9.6 1.6 2.0 -1.0 3.9 -9.2
    7.5 -3.1 6.2 -4.5 -3.0 2.5 -7.7 2.9 0.3 3.3 -2.7 3.4
    -5.0 3.0 -0.0 4.3 9.5 -0.0 -9.9 -8.6 -0.9 -5.5 7.7 6.5
    4.9 -9.6 -2.9 8.5 2.0 -9.9 -4.9 -1.5 -2.4 -7.6 1.7 8.5
    -6.4 6.8 -3.7 -4.7 0.2 5.8 -5.4 0.6 7.0 -4.2 -7.5 -2.4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    输出样例:
    40.9
    
    • 1
    #include
    using namespace std;
    int main(){
        double a[12][12],sum=0;
        char k;
        cin>>k;
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
                cin>>a[i][j];
            }
        }
        if(k=='S'){
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i<j&&i+j>11){
                   sum+=a[i][j];
               }
            }
        }
    }
    else{
        for(int i=0;i<12;i++){
            for(int j=0;j<12;j++){
               if(i<j&&i+j>11){
                   sum+=a[i][j];
               }
            }
        }
        sum/=30;
    }
    printf("%.1lf",sum);
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    KS和IV的区分比较
    6款流程图制作软件:一站式指南
    c++(五)
    unity脚本_力 c#
    设计模式之-单例模式
    【MATLAB】(高数)
    Jupyter Notebook:使用Jupyter NoteBook的时候遇到的一些坑。
    node-sass报错无法安装
    windows临时安装solr
    自媒体平台选择指南(2)
  • 原文地址:https://blog.csdn.net/yi_chen_c/article/details/126473917