如下50道算法編程題訪問量較大,包含經常使用語法,數據結構,解題思路等等,做爲C語言學習者必練題目推薦給各位。創做不易,記得一鍵三連哦!!!程序員
編程團體賽的規則爲:每一個參賽隊由若干隊員組成;全部隊員獨立比賽;參賽隊的成績爲全部隊員的成績和;成績最高的隊獲勝。算法
現給定全部隊員的比賽成績,請你編寫程序找出冠軍隊。編程
輸入格式:小程序
輸入第一行給出一個正整數 N(≤10^4^ ),即全部參賽隊員總數。隨後 N 行,每行給出一位隊員的成績,格式爲:隊伍編號-隊員編號 成績,其中隊伍編號爲 1 到 1000 的正整數,隊員編號爲 1 到 10 的正整數,成績爲 0 到 100 的整數。數組
輸出格式:數據結構
在一行中輸出冠軍隊的編號和總成績,其間以一個空格分隔。注意:題目保證冠軍隊是惟一的。函數
輸入樣例:學習
6
3-10 99
11-5 87
102-1 0
102-3 100
11-9 89
3-2 61網站
輸出樣例:.net
11 176
分析
一、對隊伍編號去重
二、隊伍中每一個隊員成績求和
三、找出總成績最高的一支隊伍,輸出
代碼:
#include<stdio.h> int temp[100000]; int t=0; void fun(int n) { if(t==0) temp[t++]=n; else { int i; int l=1; for(i=0;i<t;i++) { if(n==temp[i]) { l=-1; break; } } if(l==1)temp[t++]=n; } return t; } struct stu { int dwn; int dyn; int che; }; struct stu arr[100000]; struct stu temparr[100000]; int main() { int N; scanf("%d",&N); int i; for(i=0;i<N;i++) { scanf("%d-%d %d",&arr[i].dwn,&arr[i].dyn,&arr[i].che); fun(arr[i].dwn); } int l=0; int j; for(i=0;i<t;i++) { int sum=0; for(j=0;j<N;j++) { if(temp[i]==arr[j].dwn) sum+=arr[j].che; } temparr[l].dwn=temp[i]; temparr[l].che=sum; l++; } int index=0; for(i=1;i<l;i++) if(temparr[i].che>=temparr[index].che) index=i; printf("%d %d\n",temparr[index].dwn,temparr[index].che); return 0; }
公衆號推薦:計算機類畢業設計系統源碼,IT技術文章分享,遊戲源碼,網頁模板
小程序推薦:網站資源快速收錄--百度API網頁提交助手,操做簡單,效率高