请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

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

[复制链接]
查看: 30|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
74927
发表于 2020-9-15 13:46 | 显示全部楼层 |阅读模式
今天小编准备了两个例题,一起来看看吧!

No.1

  问题:
  某地区6个商店在一个月内电视机的销售数量见下表,试编写程序,计算打印电视机销售汇总表。
某地区6个商店在一个月内电视机的销售数量152344040232103515310122015435204025547325027622202820  分析:
  要完成这道题,我们先定义一个二维数组,小编在这里按照问题定义了 6 行 4 列的二维数组 amount [6] [4],行表示每个商店的销售情况,列表示每个品牌的销售情况。
  定义好数组后,如何计算11个总量(6个商店销售总量+4个品牌销售总量+1个总销售量)呢?小编在这里把计算和打印结合在了一起,在打印每行的时候,累加各商店的销售总量,至于各品牌的销售总量,设置了一个一维数组 brand [4],用其中的每个元素当做变量累加品牌销售总量,最后将四个元素加起来得到总销售量。
  在打印的过程中就要考虑格式了,尽量让表格整齐好看。商店序号我们可以在循环的时候根据循环变量打印出来,另外元素与元素之前的间距要控制好,小编这里用到了输出空格这个笨办法,聪明的你也可以通过控制各个元素的位数来达到效果。
  听小编讲得懵懵懂懂?代码一摆,那都不是事
  代码:
  1. #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 个商店一个月内电视机的销售总量\n");    printf("----------------------------------------------------------------\n");    printf("  商品代号    熊猫牌    西湖牌    金星牌    梅花牌    销售总量\n");    printf("----------------------------------------------------------------\n");    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("\n");        m2 += m1;    }    printf("----------------------------------------------------------------\n");    printf("    合计        %d        %d        %d        %d       %d\n", 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[j]=a[i-1][j-1]+a[i-1][j];
  要打印十行,和上道题一样有计算和打印两个步骤,在这道题中,小编分别进行计算和打印。
  要计算杨辉三角每个位置的元素,就需要用到上面找到的规律。我们先定义一个二维数组 a[10] [10],给第一行第一列这个元素赋值为1(其他元素默认为0);然后利用循环将每行第一列的元素赋值为1,其他元素利用a[j]=a[i-1][j-1]+a[i-1][j]得出,到了这里你可能会问,每一行最后一列的元素也是1呀!对,是1,1不就等于1+0吗?也符合这个公式,所以我们就可以把问题简化啦。
  计算完毕后,打印就不是问题啦,设置外循环输出行,内循环输出列就OK啦。
  代码:
[code]#include main (){    int a[10][10]={1};    int i, j;    //填充各个位置的值    for(i = 1; i < 10; i++)    {        a[0] = 1;        for(j = 1; j
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表