scanf("格式控制","變數位址")
如:scanf("%d",&n);
其中n為變數,在定義完成乙個變數後,系統會為該變數分配記憶體空間
該空間在記憶體中的位址稱為變數的位址。為了得到變數的位址可以使用取位址操作"&"
scanf的格式符如下:
資料型別
格式符int
%dlong long
%lld
double
%lffloag
%fchar
%c字串(僅限於char組成的字串)
%s
scanf("%c",str);
//類似讀入2020:1:20
scnaf("%d:%d:%d",&a,&b.&c);
不過值得注意的是,如對 3 4的輸入可以不加空格:
scanf("%d%d",&a,&b);
這是因為scanf在除%c輸入下,其他方式遇到空格或者換行符,都會終止輸入。所以,3 4在輸完第乙個3以後,scanf遇到了空格,於是馬上終止輸入,轉而進行第二次輸入,讀取b的資料。但是對於字元%c輸入是必須區分空格和換行的
printf("格式控制",變數名稱)
printf 直接輸入操作的是變數名稱,並不需要變數位址,注意與scanf的區別格式控制表:
資料型別
格式符int
%dlong long
%lld
float
%fdouble
%fchar
%c字元陣列
%s下乙個製表位\t
換行符\n
如:printf("%d\n",a);//輸出整形變數a的值並換行
第一種:%md控制輸出位數
滿足m位的數保持不變,不滿足m為的向右對齊,高位空格代替;
第二種:%0md
與第一種惟一的區別就是不足的高位換成0
第三種:%.mf
這種是控制輸出小數點位數,浮點數保留m位小數,此處保留位四捨六入五成雙保留精度。
四捨六入五成雙規則:
(1)被修約的數字小於5時,該數字捨去;
(2)被修約的數字大於5時,則進製;
(3)被修約的數字等於5時,要看5前面的數字,若是奇數則進製,若是偶數則將5捨掉,即修約後末尾數字都成為偶數;若5的後面還有不為「0」的任何數,則此時無論5的前面是奇數還是偶數,均應進製。
刷題中不限制讀入資料數量的情況
1.while…eof方法
scanf的進一步介紹。
scanf是有返回值的,返回值內容為成功讀入資料的個數。
例如:
scanf("%d,%d",&n,&m);//讀入成功將返回2
如果讀入失敗,將返回-1;
c語言使用eof(end of file)代表-1
例項:
while(scanf("%d",&n)!=eof)
while(gets(str)!=null)
2.while break輸入當達到題目要求是結束輸入,是在第一種讀到檔案末尾輸入方式的一種拓展,新增達到要求break的語句即可。
3.while(t–)輸入
這種方式是在題目給定了輸入資料的組數,即要輸入多少組資料是給定的。
題後話,注意迴圈進行清零,意思注意記得每次迴圈保持引數狀態相同,不要使得每次迴圈是初始狀態被改變了。
printf與scanf簡單使用
寫 怎麼可能少了輸入輸出,下面來說說printf和scanf的簡單使用 includeint main 下面我們來看乙個例子,很簡單就是列印乙個整形變數 includeint main 一般我們需要設定最小寬度和對齊方式,這個經常忘記怎麼使用,所以記錄一下 includeint main 其實,最想...
scanf與printf的強大
習慣了用c 常常會忽略了scanf和printf在某些題的巧妙或是便捷之處。1.scanf 很多題目要求的輸入,一般是整數 字串或陣列,一般用cin就可以 但當我們輸入乙個字串,有時我們可以根據題目要求,將字串既輸入數字又輸如字元甚至其他固定符號比如正負號小數點時,我們可以用scanf輸入。例如pa...
scanf與printf的格式
scanf的格式 1.scanf 輸入控制符 輸入引數 2.scanf 輸入控制符非輸入控制符 輸入引數 scanf的功能 將從鍵盤輸入的字元轉化為 輸入控制符 所規定格式的資料,然後存入以輸入引數的值為位址的變數中。scanf d i 其中 是乙個取位址運算子,後面加變數名表示 該變數的位址 所以...