C語言程式設計之《資料輸出》

小拾一發表於2018-08-14

 在上一節中我們已經學會如何讓計算機做加減乘除運算,但是計算機在輸出的時候,只顯示一個結果,這樣不夠人性化。如果我們可以將整個算數等式輸出就好了,形如:1+2=3。那麼問題來了,這該怎麼寫呢?

原來的程式碼如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a,b,c;
	a=1;
    b=2;
	c=a+b;
	printf("%d",c);
	return 0;
}

新的程式碼:


#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a,b,c;
	a=1;
	b=2;
    c=a+b;
	printf("%d+%d=%d",a,b,c);
	return 0;
}

仔細閱讀程式碼你會發現,新的程式碼和原來的程式碼只有最後一句printf不一樣。接下來我們仔細分析一下printf("%d+%d=%d",a,b,c);

printf語句只會輸出雙引號裡面的部分,雙引號之外的部分,只是對雙引號內的部分起到補充說明的作用。

例如:printf("%d+%d=%d",a,b,c);這行語句,雙引號裡面的部分是"%d+%d=%d",那麼計算機在輸出的時候就嚴格按照"%d+%d=%d"執行,輸出的形式必然是%d+%d=%d。

當計算機遇到第一個%d,知道“討債的”來了,於是他便去雙引號的後面討債,排在第一個的是a,那麼久向a討。a的值是1,於是第一個%d討到的便是1.

第二個是+,那麼照樣輸出,

第三個又是%d,同樣到雙引號的後面去討債,因為排在第一個的a已經被討過債了,一次向排在第二個的b討。b的值是2,於是這個%d討到的便是2.

第三個是=,依然照樣輸出。

第四個還是%d,同樣到雙引號的後面去討債,因為排在第一和第二的a和b已經被討過債了,因此想排在第三的c討。c的值是c,於是最後這個%d討到的便是3.

最後輸出的內容是1+2=3

請注意通常 雙引號內部%d的個數,和後面變了的個數是相等的,他們是“一一對應”的。如果沒有“一一對應”,從C語言的語法角度來講是沒有錯誤的,但是這不符合常理,請最好避免這樣的情況出現。

第一節:C語言程式設計之《讓計算機開口說話》

第二節:C語言程式設計之《讓輸出帶有顏色》

第三節:C語言程式設計之《用計算機做加法》

第四節:C語言程式設計之《變數—用來儲存資料的小房子》

相關文章