日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何使用一个for循环输出九九乘法表

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用一个for循环输出九九乘法表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題引入

很多人剛接觸C語言的時(shí)候一定會(huì)遇到這樣一個(gè)題目,在屏幕上輸出九九乘法表。我相信大多數(shù)人的解法都會(huì)是使用兩個(gè)for循環(huán),兩個(gè)變量,一個(gè)if判斷語句用來判斷什么時(shí)候換行。

問題1:在屏幕上輸出一個(gè)九九乘法表。

代碼

int main() {int i = 0;int j = 0;for (i = 1; i <= 9; i++){for (j = 1; j <= i; j++){printf("%d*%d=%d ", i, j, i*j);if (i == j)printf("\n");}}return 0; }

結(jié)果如圖

上面這種解法是正常解法,這樣實(shí)現(xiàn)起來可能對(duì)很多人來說都沒有問題,但是前段時(shí)間網(wǎng)上有人提出是否能只用一個(gè)for循環(huán)語句做出同樣的效果。這是個(gè)很有趣的問題,仔細(xì)想想其實(shí)也不難實(shí)現(xiàn),很多人給出了解法。

問題2:如何使用一個(gè)for循環(huán)輸出九九乘法表。

思路
網(wǎng)上給出的大多數(shù)答案基本思路是使用兩個(gè)變量,在一個(gè)for循環(huán)中一個(gè)控制每行有多少個(gè)算式,另一個(gè)控制有多少行。然后在這個(gè)for循環(huán)內(nèi)加入一個(gè)if判斷語句,用來判斷是否要換行。

int main() {int i, j;for (int i = 1, j = 1; j <= 9; i++){//i控制每行算式個(gè)數(shù),j控制共有多少行。printf("%d*%d=%d ", i, j, i*j);if (i == j) {//當(dāng)i = j 這一行輸入結(jié)束,換行。再把i置0。i = 0;j++;printf("\n");}}return 0; }

這樣改過之后同樣也可以實(shí)現(xiàn)輸出九九乘法表,但其實(shí)這種解法可以算只是把兩個(gè)for循環(huán)合并,大體思路還是一樣的,還是利用了if去判斷是否要換行。那么是否可以給出另一種不用if的語句的解法呢?

問題三:在只能使用一個(gè)for語句且不能用if判斷語句的情況下輸出九九乘法表。

思路

既然題目給出只能使用一個(gè)for語句,那么是否可以用遞歸來代替另一個(gè)for語句呢?
當(dāng)然是可以的,那么又要怎么才能判斷什么時(shí)候換行呢?

這里我采取另一種思路,每打印一行就換一次行。每一層遞歸中都給出一個(gè)換行操作,在當(dāng)整個(gè)一行輸出完成之后換行。再在函數(shù)的最后調(diào)用函數(shù)本身,再打印下一行。最后當(dāng)打印完第九行的時(shí)候跳出遞歸。

不過這里不能使用if語句,那么又如何判斷是否達(dá)到第九行呢?

這里就想到了C語言里面有一種叫做短路的現(xiàn)象,即a || b ,如果a 的值為真,整個(gè)表達(dá)式的值就為真。b 的真假由最初的真假來判斷,也就是說,當(dāng)a 為真時(shí),b 則不進(jìn)行運(yùn)算了。這就可以完美的實(shí)現(xiàn)題目的要求。

代碼

bool printTable(int n) {for (int i = 1; i <= n; i++){printf("%d*%d=%d ", i, n, i*n);}printf("\n");return n == 9 || printTable(++n);//n等于9那么跳出遞歸,否則進(jìn)入下一層遞歸 }int main() {int n = 1;printTable(n);return 0; }

總結(jié)

以上是生活随笔為你收集整理的如何使用一个for循环输出九九乘法表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。