C語(yǔ)言:人機(jī)交互(初級(jí))
眾所周知,玩游戲是一件非常有趣的事情,而做游戲,也就是編程,則是一種非??菰锏墓ぷ?,而且隨時(shí)都有掉頭發(fā)的風(fēng)險(xiǎn)。業(yè)內(nèi)盛傳一句話:一入編程深似海,從此假發(fā)隨便買。由此可見(jiàn)一斑。
所以對(duì)于我們初學(xué)者來(lái)說(shuō),提高編程的趣味性,還是很重要的,這有可能會(huì)決定你能不能堅(jiān)持學(xué)下去。
如何增加編程的趣味性呢?計(jì)算機(jī)又不能跟我聊天。雖然計(jì)算機(jī)沒(méi)有那么只能,可以陪程序員聊天,但是相互之間還是可以交互的。要實(shí)現(xiàn)人機(jī)交互,就必須要了解并熟練運(yùn)用scanf()函數(shù)。
就算是小白,不了解scanf()函數(shù),那肯定也知道printf()函數(shù)吧?這個(gè)scanf()函數(shù)的用法,跟printf()函數(shù)是一樣的。不同點(diǎn)在于,printf()函數(shù)是將()里的內(nèi)容打印出來(lái),而scanf()函數(shù)的()里是一個(gè)變量,是需要在調(diào)試界面輸入的。
例如,#include?<stdio.h>
int?main(void)
{
printf("hello");
getchar();
return?0;
}
打印在屏幕上的就是hello,而換成scanf()函數(shù)就不是這樣。
#include?<stdio.h>
int?main(void)
{
int a;
printf("請(qǐng)任意輸入一個(gè)整數(shù):\n");
Scanf("%d",&a);
getchar();
return?0;
}
則在屏幕上顯示的為:請(qǐng)任意輸入一個(gè)整數(shù):
這個(gè)時(shí)候,就可以在光標(biāo)的位置輸入任意一個(gè)整數(shù),但是按下回車鍵,界面還是一閃而過(guò),不用擔(dān)心,可以再加一行代碼:getchar();
即:#include?<stdio.h>
int?main(void)
{
int a;
printf("請(qǐng)任意輸入一個(gè)整數(shù):\n");
Scanf("%d",&a);
getchar();
getchar();
return?0;
}
這種交互很簡(jiǎn)單,似乎也沒(méi)什么太大的意思,那要是你隨便定義一個(gè)公式,然后輸入數(shù)值來(lái)計(jì)算呢?
#include?<stdio.h>
#define?PI 3.1415926
int?main(void)
{
int?r,d;
float?c,s;
printf("圓的半徑為\n");
scanf("%d",&r);
getchar();
d=2*r;
c=2*r*PI;
s=PI*r*r;
printf("%d\n",d);
printf("%f,%f\n",c,s);
getchar();
return?0;
}
這是一個(gè)計(jì)算圓的直徑、周長(zhǎng)和面積的程序,只要你賦一個(gè)整數(shù)給r,計(jì)算機(jī)就會(huì)為你計(jì)算出直徑、周長(zhǎng)和面積。(這里的r、d,我定義的是int類型,因此只能是整數(shù),如果需要用到小數(shù),也可以將int改成float。)
#define?PI 3.1415926
這行代碼是什么意思呢?其實(shí)就是一個(gè)預(yù)處理機(jī)制,將3.1415926賦而PI(一定要大寫(xiě)),如果需要改動(dòng)PI的值,直接改動(dòng)這行代碼就行,而不用一一去改數(shù)值。
調(diào)試之后的界面是這樣的:
?

任意輸入整數(shù)3,則是這樣的:

是不是有點(diǎn)意思了?深入學(xué)習(xí),還會(huì)更有意思的哦。
注意:printf("圓的半徑為\n",r);
scanf("%d,&r\n");
如果打印函數(shù)用的多了,很容易出現(xiàn)這樣的慣性,但是不幸的是,這樣的代碼是錯(cuò)誤的,運(yùn)行之后,會(huì)導(dǎo)致以下結(jié)果: ???

不同的系統(tǒng),錯(cuò)誤的提示可能不同,但錯(cuò)誤是肯定會(huì)有的。
正確是應(yīng)該是這樣:
printf("圓的半徑為\n");
scanf("%d",&r);
希望這次的分享,可以給你帶著一點(diǎn)收獲喲~