當前位置:首頁 » 編程語言 » c語言scanf
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言scanf

發布時間: 2022-01-15 23:54:34

1. 請問一下c語言scanf中的意思

scanf()函數根據由format(格式)指定的格式從stdin(標准輸入)讀取,並保存數據到其它參數. 它和printf()有點類似. format(格式)字元串由控制字元,空白字元和非空白字元組成. 控制字元以一個%符號開始,如下: 控制字元說明%c一個單一的字元%d一個十進制整數%i一個整數%e, %f, %g一個浮點數%o一個八進制數%s一個字元串%x一個十六進制數%p一個指針%n一個等於讀取字元數量的整數%u一個無符號整數%[]一個字元集%%一個精度符號scanf()讀取匹配format(格式)字元串的輸入. 當讀取到一個控制字元, 它把值放置到下一個變數. 空白(tabs, 空格等等)會跳過. 非空白字元和輸入匹配, 然後丟棄. 如果是一個在%符號和控制符間的數量, 那麼只有指定數量的字元轉換到變數中. 如果scanf()遇到一個字元集(用%[]控制字元表示), 那麼在括弧中的任意字元都會讀取到變數中. scanf()的返回值是成功賦值的變數數量, 發生錯誤時返回EOF.

2. C語言scanf()

有逗號.
你在輸入數據的時候,就必須輸入逗號,
scanf("%d,%d",&a,&b);
應該輸入:
1,2
scanf("%d%d",&a,&b);
這個有點問題吧.
沒試過,一般情況下,是需要在中間加一個空格,
類似這樣scanf("%d
%d",&a,&b);
然後兩個整型以空格為分界.
輸入:
1
2(注:中間有空格)
其實這個是scanf本身的一種對字元串的處理.
具體你可以熟悉一下sprintf
sscanf.
他們的原理都是一樣的.

3. C語言scanf問題

/*解答者注意,這是競賽題,它給出的輸入就是實實在在的輸入的內容,不要臆測,嚴格按照輸入辦事!!*/

#include <stdio.h>
int main(int argc, char* argv[]){
for(int t=0,c;scanf("%1slease input time(seconds):%d",&c,&t)==2;)
printf("Output time is(h:m:s):%d:%02d:%02d\n",t/3600,t/60%60,t%60);
return 0;
}

/*任務完成,向online judge提交吧,給分吧*/
/*當然最後一行要不要換行你自己處理吧,我這假設最後一行也換行的*/

4. C語言scanf的問題

加上頭文件
void main()
{char c1,c2;
scanf("%c",&c1);
while(c1<'A'llc1<'Z')
c2=c1+32;
printf("%c%c\n",c1,c2);
}

5. c語言scanf

printf("%d",&t); 這里會輸出 t 的地址,不知道是不是你的本意(我修改代碼時沒改此處)
如果是輸出 t 的值,不用 & (&是取地址符號),對於沒有賦值的變數,會輸出一個默認值,所以一般不輸出沒賦值的變數
if判斷句本身不用分號,不然會作空語句處理
if(t<50) ;
m=t*90;
等價於
if (t<50)
{
;
}
m=t*90;
執行的時候會判斷t,如果小於50,執行一個空語句(相當於什麼都不做),if的內容完了。接著執行m=t*90; 如果不小於50,直接跳過if。接著執行m=t*90;
所以本題中
if (t<50);
這一行多了一個 「;」 去掉
else if ( t>50&&t<100 );
一樣的,去掉分號
(t>100);
這句完全沒有意義,如果是你的註解,用 「//」或「/*……*/」標記

還有當你輸入50 或者 100 時
會去調用 else m=t*80; 不知道你是疏忽了,還是本來就准備這么算。如果是疏忽了,請再if處,加「=」
比如 if(t<=50) ……else if (t>50&&t<=100) ……else
或者i f(t<50) ……else if (t>=50&&t<=100) ……else
隨你改。下面的代碼我沒改這點。
修改後代碼:
#include<stdio.h>
main(){
int t,m;
printf("%d",&t);
scanf("%d",&t);
if(t<50)
m=t*90;
else if (t>50&&t<100)
m=t*85;
else
m=t*80; // (t>100);
printf("%d,%d\n",t,m);
}
printf()中雙引號「」內的內容除了 %d,%c之類,其他都是原樣輸出,所以裡面不管是半形還是全形符號都無所謂,它都會原樣輸出,這個看個人喜好。

6. C語言scanf

它實際上輸出的是s4空格
因為你的輸入scanf("%c%d%c",&a,&b,&c);中最後一個c是字元,所以,c接收的是4後面輸入的空格,你可以去掉輸出的回車,然後在最後加一句printf("&&&");就可以看出空格輸出了。

7. c語言scanf問題!

第一個主要適用於多個數據讀入
scanf("%d%d%d",&a,&b,&c);
用空格符、製表符和回車符都可
但當讀入字元串時
scanf("%s",str);
就需要空格,或按回車鍵或tab鍵來確定讀入結束
而且多個數據讀入時,「數據認為結束」時指這個數據,如前者 a=10 b=20 c=30
即按照 "10 20 30" 而不是"102030"

8. 求解 C語言scanf的問題

不知道我對你的問題理解得是否正確。
對於你的問題,在for中,要先判斷(scanf("%d", &enter) == 1) && (i <= 15) ,而要判斷它就意味這要執行scanf("%d", &enter),所以要先輸入一個數,接著printf,然後scanf,循環再次執行,又判斷一次(scanf("%d", &enter) == 1) && (i <= 15),那麼前後連起來便是要輸入兩次了。
另外,scanf("%d", &enter) == 1 是用scanf函數的返回值與1做比較,而scanf函數的返回值是成功讀入的值的個數,而不是代表所輸入的數。所以,這個程序也許沒有實現它的目的。
希望能幫助你。

9. c語言scanf問題

沒有初始化,變數的值是隨機的