HDU 杭電 acm-2093-考試排名
/************************************************************************
這題廢了一番功夫。。
首先題目沒給出人數,乍一看懵了。參考了網上的程式碼,用 while(scanf("%s",name)!=EOF)來結束人的輸入,鍵盤同時按住ctrl+z,輸入檔案結束符,再回車,計算排名。同時把儲存人的陣列定義的大一點(10000為例);
其次是資料的輸入竟然還有括號,原想用getchar()來接收並檢測是不是括號,但容易出錯,乾脆全部用%s接收成字串,再寫個函式轉化為純數字。
/****************************************************************************************
程式碼如下:
/*************************
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> using namespace std; struct person{ char name[11]; int accepted; int punish; }acmer[10000]; int n,m;//n題目數,m懲罰分 int cmp(const void *q,const void *w) { person *a=(person*)q,*b=(person*)w; if(a->accepted!=b->accepted) return b->accepted-a->accepted; if(a->punish!=b->punish) return a->punish-b->punish; return strcmp(a->name,b->name); } int to_int(char *p)//此函式將字串中的數字轉化為int型資料 { if(*p=='-'||*p=='0') return 0;//題目沒做對,不做統計,直接0 int punish=0,temp=0; while(*p) { if(*p=='(') { while(*(++p)!=')') { temp=temp*10+*p-'0'; } break; } punish=punish*10+*p-'0'; p++; } return punish+temp*m; } int main() { char a[12]; int score,i=0; scanf("%d%d",&n,&m); while(scanf("%s",acmer[i].name)!=EOF) { acmer[i].accepted=0; acmer[i].punish=0; for(int j=0;j<n;j++) { scanf("%s",a); score=to_int(a); if(score>0) { acmer[i].accepted++; acmer[i].punish+=score; } } i++; } qsort(acmer,i,sizeof(acmer[0]),cmp); for(int j=0;j<i;j++) { printf("%-10s %2d %4d\n",acmer[j].name,acmer[j].accepted,acmer[j].punish); } return 0; }
相關推薦
HDU 杭電 acm-2093-考試排名
/************************************************************************ 這題廢了一番功夫。。 首先題目沒給出人數,乍一看懵了。參考了網上的程式碼,用 while(scanf("%s",name)!
杭電OJ-- 2093 考試排名
C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題“AC”後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍
題解報告:hdu 2093 考試排名
初始 c++ 讀取 實時 相互 計算 入參 spa 排序規則 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2093 Problem Description C++編程考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功
杭電ACM hdu 2079 選課時間 (模板)
Problem Description 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。(xhd認為一樣學分的課沒區別) Input輸入資料的第一行是一個數據T,表示有T組資料。每組資料的第一行是兩個整數n(1 <= n <
HDU 2093 考試排名 【排序】【模擬】
考試排名Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14928 Accepted Submission(s
杭電ACM hdu 2152 Fruit 解題報告(母函式)
Problem Description 轉眼到了收穫的季節,由於有TT的專業指導,Lele獲得了大豐收。特別是水果,Lele一共種了N種水果,有蘋果,梨子,香蕉,西瓜……不但味道好吃,樣子更是好看。 於是,很多人們慕名而來,找Lele買水果。 甚至連大名鼎鼎的HDU ACM
HDU 2093 考試排名
說明:這個就是一個簡單的資料處理的題目,建議用STL #include <stdio.h> #include <algorithm> #include <string.h> using namespace std;
杭電ACM—HDU 1002 A + B Problem II
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1002 題目: Problem Description I have a very simple problem for you. Given two integers A
HDU 2093考試排名(結構體多關鍵字排序+字串處理)
題目 Description C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一
HDU 2093考試排名
C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題“AC”後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍上
hdu 2093 考試排名(sscanf)
模擬題。 直接從教程里拉解析。 因為表格裡的資料格式不統一。有時候有"()",有時候又沒有。而它也不會給我們提示。 這種情況下,就只能它它們統一看作字串來處理了。現在就請出我們的主角sscanf()! sscanf 語法: #include int sscanf( con
HDU 2093 考試排名【結構體排序】
C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題“AC”後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍
杭電ACM hdu 2082 找單詞 解題報告(母函式)
Problem Description 假設有x1個字母A, x2個字母B,..... x26個字母Z,同時假設字母A的價值為1,字母B的價值為2,..... 字母Z的價值為26。那麼,對於給定的字母,可以找到多少價值<=50的單詞呢?單詞的價值就是組成一個單詞的所有
杭電ACM hdu 2079 選課時間 解題報告(母函式)
Problem Description 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。(xhd認為一樣學分的課沒區別)Input輸入資料的第一行是一個數據T,表示有T組資料。每組資料的第一行是兩個整數n(1
HDU 2093 (考試排名)
C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題“AC”後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍
hdu 2093 考試排名(結構體排序)
對“到檔案結束”理解 程式碼: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct node { char nam
HDU 2093 考試排名 (結構體+排序+簡單但麻煩)
考試排名 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi
杭電 ACM HDU Train Problem I
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25008 Accepte
hdu---2093考試排名
C++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢?我們做好了題目的解答,提交之後,要麼“AC”,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題“AC”後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍上了
『ACM C++』HDU杭電OJ | 1415 - Jugs (灌水定理引申)
size 任務 手寫 posit integer another 說我 清空 www. 今天總算開學了,當了班長就是麻煩,明明自己沒買書卻要帶著一波人去領書,那能怎麽辦呢,只能說我善人心腸哈哈哈,不過我腦子裏突然浮起一個念頭,大二還要不要繼續當這個班委呢,既然已經體