【Day 17】for 回圈的范例讲解

今天,我们先来看看阶乘要怎麽写~
我的程序码长这样:

#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,数字前面会空一格,这样看起来就会舒服许多了~

写完九九乘法表,有没有觉得写程序蛮有趣的呢?
明天我们来学习其他回圈吧~


<<:  Day18_CSS语法1

>>:  冒险村17 - Configatron

第18天~SharedPreference常被使用於资料储存

SharedPreference常被使用於资料储存,很适合做一些简单的资料存取 先配置按钮-因为是要...

Day 21: Behavioral patterns - Iterator

目的 了解 forEach() 的来由。 说明 简单来说,实作任意资料结构的 forEach(),最...

【Day 28】Cmd 指令很乱,主办单位要不要管一下 (下) - Cmd 指令混淆

环境 Windows 10 19043 System Monitor v13.01 前情提要 在【D...

DAY 30- NFT & 结语

最後一篇,想说讲一下最近很夯的NFT,做为一个结尾。 NFT Non-Fungible Token,...

30天零负担轻松学会制作APP介面及设计【DAY 25】

大家好,我是YIYI,今天我要来展示过去24天来努力的结晶了。 影片介绍 一开始会进入写着SECRE...