今天小編準備了兩個例題,一起來看看吧!
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/36298.html
標籤:C
下一篇:5 常量與變數
