iT邦幫忙

2021 iThome 鐵人賽

DAY 17
1
Software Development

C 語言的簡單入門系列 第 17

【Day 17】for 迴圈的範例講解

  • 分享至 

  • xImage
  •  

今天,我們先來看看階乘要怎麼寫~
我的程式碼長這樣:

#include<stdio.h>
int main(){
	int i, A, answer = 1;
	printf("Please input a number A >> ");
	scanf("%d", &A);
	for(i=1; i<=A; i++)
		answer *= i;
	printf("A!=%d",answer);
	return 0;
}

輸出結果:

其實階乘這題蠻容易的,因為昨天也講過累加了,階乘就是累乘(?
比較要注意的是,我們要做的是乘法,所以 answer 初始值要給 1,如果給 0,不管怎麼乘都是 0。然後 i 也要從 1 開始乘~
接下來,一起來看看要怎麼輸出九九乘法表吧~
我的程式碼 :

#include<stdio.h>
int main(){
	int i, j;
	for(i=1; i<=9; i++){
		for(j=1; j<=9; j++)
			printf("%dx%d=%2d ", j, i, j * i);
		printf("\n");
	}
	return 0;
}

輸出結果:


記得第一次寫九九乘法表的程式時,是高中班導教我們的,那時候我對雙迴圈真的有夠困擾,會覺得腦袋會打結,但其實只要很清楚迴圈在做甚麼,多寫多用,使用多個迴圈沒有想像中的難!!

思路:
乘法是兩個數字相乘,九九乘法表其實就是 1 到 9 的數字分別放在乘數被乘數互乘而已。所以兩個迴圈裡面 ij 都是 1 到 9 的數字,然後因為我們是輸出一行後換行,會發現第一行都是(1 到 9 的數字)* 1,所以我們的 j 會放被乘數的位置。

這裡有一個小技巧,printf("%dx%d=%2d ",j,i,j*i);為甚麼答案的地方放的是 %2d 呢?
因為如果都是放 %d,會發現輸出結果答案是對的,但是版面不好看,因為答案可能是只有個位數,也可能有十位數與個位數。但我們現在放的是 %2d,他就會保留兩個數字的位子,所以會發現如果答案 <10,數字前面會空一格,這樣看起來就會舒服許多了~

寫完九九乘法表,有沒有覺得寫程式蠻有趣的呢?
明天我們來學習其他迴圈吧~


上一篇
【Day 16】for 迴圈
下一篇
【Day 18】while 迴圈 / do...while 迴圈
系列文
C 語言的簡單入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言