#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int body_height, chair_height, numb_of_apple,height_all,numb_get=0;
int numb_flag,a[1000];//
scanf("%d %d %d",&body_height, &chair_height, &numb_of_apple);//b[i]=buf;
//while(cin>>b[i++],cin.get()!='\n');
/*do
{
cin>>a[i++];
}while(cin.get()!= '\n');*/
numb_flag=0;
do
{
cin>>a[numb_flag++];
}while(numb_flag<numb_of_apple);
numb_flag=0;
height_all=body_height+chair_height;
while(numb_flag<numb_of_apple)
{
if(a[numb_flag++]<=height_all) numb_get++;
}
cout<<numb_get<<endl;
return 0;
}
題目很簡單,但是當時由於看錯題目,結果花了很長時間。
題目中已經給了蘋果個數,所以你就循環n次讀鍵盤輸入數據就行。我看是以爲不知道n,所以就在想以回車結束參數的輸入。不過最後也是找出了辦法。有兩種:
第一種:
while(cin>>b[i++],cin.get()!='\n');
第二種:
do
{
cin>>a[i++];
}while(cin.get()!= '\n');
顯然第一種比較簡潔,網上搜到的。但是不容易懂。第二種是我分析後寫的,就容易懂多了。其實很簡單,主要是cin不能讀取字符,所以回車沒用。而cin.get()在這專門是用來讀取字符的。
關於具體的cin,cin.get等函數的區別,可以看上篇轉載的博文。