• C语言二维数组的应用举例


    今天小编准备了两个例题,一起来看看吧!

    No.1

      问题:

      某地区6个商店在一个月内电视机的销售数量见下表,试编写程序,计算打印电视机销售汇总表。

    某地区6个商店在一个月内电视机的销售数量
    1 52 34 40 40
    2 32 10 35 15
    3 10 12 20 15
    4 35 20 40 25
    5 47 32 50 27
    6 22 20 28 20

      分析:

      要完成这道题,我们先定义一个二维数组,小编在这里按照问题定义了 6 行 4 列的二维数组 amount [6] [4],行表示每个商店的销售情况,列表示每个品牌的销售情况。

      定义好数组后,如何计算11个总量(6个商店销售总量+4个品牌销售总量+1个总销售量)呢?小编在这里把计算和打印结合在了一起,在打印每行的时候,累加各商店的销售总量,至于各品牌的销售总量,设置了一个一维数组 brand [4],用其中的每个元素当做变量累加品牌销售总量,最后将四个元素加起来得到总销售量。

      在打印的过程中就要考虑格式了,尽量让表格整齐好看。商店序号我们可以在循环的时候根据循环变量打印出来,另外元素与元素之前的间距要控制好,小编这里用到了输出空格这个笨办法,聪明的你也可以通过控制各个元素的位数来达到效果。

      听小编讲得懵懵懂懂?代码一摆,那都不是事

      代码:

    #include "stdio.h"
    main ()
    {
        int amount [6][4] = {52, 34, 40, 40, 32, 10, 35, 15, 10, 12, 20, 15, 35, 20, 40, 25, 47, 32, 50, 27, 22, 20, 28, 20};
        int i, j, m1, m2=0;
        int brand[4]={0};
        printf("           某地区 6 个商店一个月内电视机的销售总量
    ");
        printf("----------------------------------------------------------------
    ");
        printf("  商品代号    熊猫牌    西湖牌    金星牌    梅花牌    销售总量
    ");
        printf("----------------------------------------------------------------
    ");
        for(i = 0; i < 6; i++)  //按行遍历                      //统计并输出
        {
            printf("      %d     ", i);
            m1 = 0;
            for (j = 0; j < 4; j++)  //按列遍历
            {
                printf("    %d    ", amount [i] [j]);
                m1 += amount [i] [j];   //累加每个商店的销量
                brand[j] = amount [i] [j];  //累加每个品牌的销量
            }
            printf("    %d", m1);
            printf("
    ");
            m2 += m1;
        }
        printf("----------------------------------------------------------------
    ");
        printf("    合计        %d        %d        %d        %d       %d
    ", brand[0], brand[2], brand[3], brand[4], m2);
    }

    No.2

      问题:

      打印输出以下的杨辉三角形(要求打印出10行)。

        1

        1  1

        1  2  1

        1  3  3  1

        1  4  6  4  1

        ……

      分析:

      首先来玩个找规律游戏:

        ①题目要求打印的杨辉三角形的形状为等腰直角三角形,第n行有n个数;

        ②每行第一个元素都为1;

        ③每行最后一个元素为1;

        ④每行(除第一行)除了第一列和最后一列的元素都满足:a[i][j]=a[i-1][j-1]+a[i-1][j];

      要打印十行,和上道题一样有计算和打印两个步骤,在这道题中,小编分别进行计算和打印。

      要计算杨辉三角每个位置的元素,就需要用到上面找到的规律。我们先定义一个二维数组 a[10] [10],给第一行第一列这个元素赋值为1(其他元素默认为0);然后利用循环将每行第一列的元素赋值为1,其他元素利用a[i][j]=a[i-1][j-1]+a[i-1][j]得出,到了这里你可能会问,每一行最后一列的元素也是1呀!对,是1,1不就等于1+0吗?也符合这个公式,所以我们就可以把问题简化啦。

      计算完毕后,打印就不是问题啦,设置外循环输出行,内循环输出列就OK啦。

      代码:

    #include <stdio.h>
    main ()
    {
        int a[10][10]={1};
        int i, j;
        //填充各个位置的值
        for(i = 1; i < 10; i++)
        {
            a[i][0] = 1;
            for(j = 1; j <= i; j++)
                a[i][j] = a[i-1][j-1] + a[i-1][j];
        }
        //打印杨辉三角
        for(i = 0; i < 10; i++)
        {
            for(j = 0; j <=i; j++)
                printf("%4d", a[i][j]);
            printf("
    ");
        }
    }

      本次的分享就到这里啦,欢迎小伙伴们前来指正!

      预告:C语言字符数组超细讲解

      2020-04-22 09:36:03

     

     

     

     

     

     

  • 相关阅读:
    tensorflow打印输出张量以及tf.one_hot()函数简介
    Windows10下Jupyter Notebook 使用虚拟环境
    图解Windows10下如何更换Jupyter Notebook 内核Python版本(切换原始的python环境)
    听说你在找工作?这里有很多招聘信息~
    数据集难找?GAN生成你想要的数据!!!
    妈妈再也不担心我没壁纸了!
    你的爬虫ip又被封了?教你一招
    飞鸽内网穿透
    第九届全国生物信息学与系统生物学学术大会
    SAP UI5 Routing 路由介绍
  • 原文地址:https://www.cnblogs.com/zhugesiying/p/array_eg.html
Copyright © 2020-2023  润新知