題目詳情
本題要求讀入 N 名學生的成績,將獲得某一給定分數的學生人數輸出。
輸入格式:
輸入在第 1 行給出不超過 105 的正整數 N,即學生總人數。隨後一行給出 N 名學生的百分制整數成績,中間以空格分隔。最後一行給出要查詢的分數個數 K(不超過 N 的正整數),隨後是 K 個分數,中間以空格分隔。
輸出格式:
在一行中按查詢順序給出得分等於指定分數的學生人數,中間以空格分隔,但行末不得有多餘空格。
輸入樣例:
10
60 75 90 55 75 99 82 90 75 50
3 75 90 88
輸出樣例:
3 2 0
-第一次的超時代碼 ,代碼如下
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int a[101];
int main()
{
int n, temp;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>temp;
a[temp]++;
}
cin>>n;
cin>>temp;
cout<<a[temp];
for(int i=1;i<n;i++)
{
cin>>temp;
cout<<" "<<a[temp];
}
return 0;
}
-第二次改了輸入和輸出的代碼就可以過,代碼如下
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <stdlib.h>
#include <algorithm>
using namespace std;
int a[101];
int main()
{
int n, temp;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>temp;
a[temp]++;
}
scanf("%d",&n);
scanf("%d",&temp);
printf("%d",a[temp]);
for(int i=1;i<n;i++)
{
scanf("%d",&temp);
printf(" %d",a[temp]);
}
return 0;
}