国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HDU 杭電 acm-2093-考試排名

2019-11-14 09:49:12
字體:
來源:轉載
供稿:網友

題目地址:http://acm.hdu.edu.cn/showPRoblem.php?pid=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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜泉县| 义马市| 张北县| 稻城县| 永泰县| 郑州市| 靖江市| 织金县| 青州市| 安塞县| 句容市| 江安县| 乌兰浩特市| 永登县| 淮滨县| 桦南县| 都昌县| 秭归县| 封开县| 南康市| 会泽县| 驻马店市| 齐齐哈尔市| 乐清市| 陆良县| 石台县| 洛川县| 南江县| 三原县| 库伦旗| 怀安县| 壶关县| 赤峰市| 温宿县| 双流县| 三亚市| 青河县| 芜湖县| 营山县| 剑川县| 天柱县|