c語言 用scanf函式輸入資料,舉例並分析錯誤原因
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
用scanf函式輸入資料,舉例並分析錯誤原因
用下面的scanf函式輸入資料,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。問在鍵盤上如何輸入。
程式:
#include<stdio.h>
int main()
{
int a, b;
float x, y;
char c1, c2;
scanf("a=%d b=%d",&a,&b);
scanf("%f %e",&x,&y);
scanf("%c%c", &c1, &c2);
printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1, c2);
return 0;
}
輸入方式一及結果分析:
a=3 b=7
8.5 71.82Aa
a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a
請按任意鍵繼續. . .
在輸入8.5和71.82兩個實數給x和y後,應緊接著輸入字元A,中間不要有空格,由於字母A不是數字,系統在遇到字母A時,就確定輸入給y的值已經結束,字元A就送到下一個scanf語句中的字元變數c1。
輸入方式二及結果分析:
a=3 b=7
8.5 71.82 Aa
a=3,b=7,x=8.500000,y=71.820000,c1= ,c2=A
請按任意鍵繼續. . .
在輸入8.5和71.82兩個實數後,輸入的空格符就被c1讀入,c2讀入了字元A,故輸出c1時就輸出空格,輸出c2的值為A。
輸入方式三及結果分析:
a=3 b=7
8.5 71.82
Aa
a=3,b=7,x=8.500000,y=71.820000,c1=
,c2=A
請按任意鍵繼續. . .
在輸入8.5和71.82兩個實數後,按回車鍵再輸入Aa,這時“回車”被作為一個字元送到記憶體輸入緩衝區,被c1讀入,字元A被c2讀取,故在輸出c1時,就輸出一個換行,在下一行輸出逗號和c2的值A。
本文出自 “巖梟” 部落格,請務必保留此出處http://yaoyaolx.blog.51cto.com/10732111/1740239