今天,我們先來看看階乘要怎麼寫~
我的程式碼長這樣:
#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 的數字分別放在乘數被乘數互乘而已。所以兩個迴圈裡面 i
跟 j
都是 1 到 9 的數字,然後因為我們是輸出一行後換行,會發現第一行都是(1 到 9 的數字)* 1,所以我們的 j
會放被乘數的位置。
這裡有一個小技巧,printf("%dx%d=%2d ",j,i,j*i);
為甚麼答案的地方放的是 %2d
呢?
因為如果都是放 %d
,會發現輸出結果答案是對的,但是版面不好看,因為答案可能是只有個位數,也可能有十位數與個位數。但我們現在放的是 %2d
,他就會保留兩個數字的位子,所以會發現如果答案 <10,數字前面會空一格,這樣看起來就會舒服許多了~
寫完九九乘法表,有沒有覺得寫程式蠻有趣的呢?
明天我們來學習其他迴圈吧~