今天在一道題上發現乙個坑。
輸入三個字元,按以下規則求其平均值。
(1)如果是數字0~9,那麼直接參與求值;
(2)如果是其他字元,則其ascii碼參與求值。
輸入
輸入資料有多組。第一行是資料的組數t,接下來由t行,每行有3個字元,沒有其他任何多餘字元。
輸出
對於每組輸入,根據規則輸出平均值。保留2位小數。
樣例輸入
2 123 1a3
樣例輸出
2.00 23.00
這是我栽了幾次坑之後,還是錯的**:
#include
#include
using namespace std;
int main()
printf("%0.2lf\n",sum/3.0);
}return 0;
}發現有什麼問題嗎?
在看一看正確的**:
#include
#include
using namespace std;
int main()
printf("%0.2lf\n",sum/3.0);
}return 0;
}發現問題了沒?
兩組測試資料即可發現問題:1 3(中間為空格) 和123
下面就這個問題說一說:
①cin>>:無法接收空格、tap鍵且以空格、tap鍵、回車符為分隔符;
②cin.get( ):可以接收空格、tap鍵且以回車符為結束符;
一:可輸入單個字元
格式:char ch;
ch=cin.get( );/cin.get(ch);
二:可輸入字串
格式:cin.get(字元陣列名,元素個數)
③getline( ):可接收空格、tap鍵且以回車符為結束符;
格式:string str;//字串變數
getline(cin,str);
④cin.getline( ):可接收空格、tapa鍵且以回車符結束;
格式:cin.getline(字元陣列名,元素個數)
char m[20];
cin.getline(m,20);
③和④類似,單數getline( )屬於string流類,而cin.getline( )屬於istream流類,是不一樣的函式。
c語言中的gets( )和getchar( )
①gets(字元陣列名)用於接收字串,可包括空格、tap鍵且以回車符結束;
②getchar(字元變數名)用於接收單個字元且以回車符結束,一般需要兩個。前乙個接收字元,後乙個接收回車符。
③putchar(字元變數名或整常數)
C 之 cin 與 !cin 的原理分析
在判斷檔案開啟成功與否或是連續從流中讀取資料時,就要用到對流對像的操作,比如if cin 或是 whie cin 等等。while cin val 我們都知道 cin 是乙個流物件,而 運算子返回左邊的流物件,也就是說 cin val 返回 cin,於是 while cin val 就變成了 whi...
c 中cin與cout 詳解
cin與cout 一 標準輸入函式cin 不知道說它是個函式對還是不對,它是代表標準的輸入裝置 鍵盤。他是屬於流的,他的用法和流的用法是一樣的。也就是 cin 變數 小小的說明一下,輸入多個變數可以寫在一行,如 cin x y z 這樣寫不是不允許,而是不好看,如果是不同的變數型別,那就更是沒頭沒腦...
getchar 與EOF的總結
一 getchar的兩點總結 1.getchar是以行為單位進行訪問的。當用getchar進行輸入時,如果輸入的第乙個字元為有效字元 即輸入是檔案結束符 eof,windows下為組合鍵 ctrl z,unix linux下為組合鍵 ctrl d 那麼只有當最後乙個輸入字元為換行符 n 也可以是檔案...