今天小編准備了兩個例題,一起來看看吧!
No.1
問題:
某地區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