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 個商店一個月內電視機的銷售總量\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[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("\n"); } }

 

  本次的分享就到這里啦,歡迎小伙伴們前來指正!

  預告:C語言字符數組超細講解

  2020-04-22 09:36:03

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM