考核!!!
求各位大佬幫忙看看這幾題
蟹蟹
學校接到澳大利亞某聯誼學校的通知,該學校將在10天后派代表團來訪問我校,為一做好來訪訪問團的接待作業,學校決定從全校的學生中評選出一位最受歡迎的學生參與接待作業。學校將全校的n(10<=n<=1000)位學生統一進行編號(1,2,3,4......n),并且規定每位學生可以從中選出m(1<=m<n)位自己喜歡的同學,記錄下該學生的編號。學校收集好各個學生的評選結果,請你幫助學校完成統計作業,找出全校最受學生歡迎的那位學生,如果同時出現多個最受歡迎的學生的話,請在同一行內輸出所有相同的學生編號,編號與編號之間用空格隔開。
輸入格式
資料共n+1行。 第一行:兩個資料學生總數n(10<=n<=1000)和每位學生可選擇的人數m(1<=m<n)。 第二行到第n+1行:每行共m個整數即該學生選出的個學生的編號。
輸出格式
資料輸出格式:共一行,即最受歡迎的學生的編號。如果同時出現多個最受歡迎的學生,請在同一行內輸出所有相同的學生編號,編號與編號之間用空格隔開。
uj5u.com熱心網友回復:
#include<stdio.h>#include <string.h>
#include<stdlib.h>
#define MAXN 1010
int vote[MAXN];
int choices[MAXN];
int main() {
int N, M, i, j;
scanf("%d%d", &N, &M);
for (i=0; i<N; i++) {
memset(choices, 0, sizeof(choices));
for ( j=0; j<M; j++) {
int choice;
scanf("%d", &choice);
if ( choice <1 || choice >N ) continue; //無效的票
choices[choice]++;
if (choices[choice]>1 ) break;//
// 一個人,給另外一個人投了多次票, 比如這一行資料是1 1 1 這樣的情況
// 如果不需要處理這種情況,注釋掉這行即可
}
if ( j==M) {
for ( j=0; j<N; j++ )
vote[j] += choices[j];
};
}
int maxChoice=vote[1];
for (i=2; i<N; i++)
if ( vote[i] > vote[maxChoice]) maxChoice = i;
for ( int i=1; i<N; i++)
if ( vote[i] == vote[maxChoice])
printf("%d ", i);
return 0;
}
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
代入范例是對的,但AC不了,只有60分
uj5u.com熱心網友回復:
鬼知道你那個測驗資料要考慮多少種合法和非法的選票情況這種題本來就是給練手的,一個不行,還繼續第二題?!
自己玩兒去吧
uj5u.com熱心網友回復:
#include<iostream>
using namespace std;
int main()
{
int n,m,a[10001]={},i,j,b,max=-1,max_1[10001],sum=0;
cin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>b;
a[b]++;
}
}
for(i=1;i<=n;i++)
{
if(a[i]>max) max=a[i];
}
for(i=1;i<=n;i++)
{
if(a[i]==max) max_1[++sum]=i;
}
for(i=1;i<=sum;i++)
{
cout<<max_1[i]<<" ";
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124508.html
標籤:C語言
下一篇:不能載入該控制元件檔案
