网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月26日漏签0天
c语言吧 关注:801,953贴子:4,377,427
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回c语言吧
>0< 加载中...

求解释

  • 只看楼主
  • 收藏

  • 回复
  • 想一项
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
水王争霸
Time Limit: 1000MS Memory Limit: 65535KB
Submissions: 157 Accepted: 24
Description 众所周知,IOIForum有很多水王,他们的发贴数是如此之多,以至于必须要用高精度数才能保存。 为了迎接国庆,IOIForum决定举行一次水王争霸赛,比赛的规则是将这些水王截止到2003年9月30日23时59分59秒这一刻所发的总贴数从大到小进行排序。每个水王当然都想取得尽量靠前的名次,所以他们竭尽全力,不择手段地进行灌水。 终于,激动人心的一刻到来了,2003年10月1日0时0分0秒,你作为裁判得到了每个水王的发贴数,现在,你的任务是公正地把这些水王按照发贴数从大到小进行排序。 Input 输入的第一行是一个1到1000的整数N,表示总共有N位水王参加了争霸赛。 以下依次给出每位水王的描述,一位水王的描述占据两行,第一行为一个仅由字母和数字组成的长度不超过20的字符串,代表这个水王的ID,第二行一个高精度的整数(非负数),代表这个水王的发贴数。注意,这个整数的首位没有不必要的0。 考虑到IOIForum的数据库是有限的,所有水王发贴数的总长度(注意,是总长度而不是总和)不会超过10000。 除了子母、数字和必要的换行,输入中不会出现空格等字符。 Output 依次输出按照发贴数从大到小排好序的各位水王的ID,每个ID占据单独的一行。不能有任何多余的字符。若几个ID的发贴数相同,则按照ID的字典顺序先后排列。 Sample Input 6 lowai 1534534124561243453 zhouyuan 23453265344 Maolaoda 23442353452342 BuTaoCaiGuai 7568784573464 ArthurKing 97534892734723947 hyyylr 623893451 Sample Output lowai ArthurKing Maolaoda BuTaoCaiGuai zhouyuan hyyylr


  • 想一项
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<stdio.h>#include<string.h>struct date{ char name[22]; char num[100]; int l;};int main(){ struct date a[1000],t; int panduan(struct date a,struct date b); int n,i,j; char c; scanf("%d%c",&n,&c); for(i=0;i<n;i++) { scanf("%s",a[i].name); scanf("%s",a[i].num); a[i].l=strlen(a[i].num); } for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) { if(a[j].l<=a[j+1].l) { if(a[j].l==a[j+1].l) { if(!panduan(a[j],a[j+1])) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } else { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } for(i=0;i<n;i++) { printf("%s",a[i].name); printf("\n"); } return 0;}int panduan(struct date a,struct date b){ int panduan1(struct date a,struct date b); int i,flag; for(i=0;i<a.l;i++) { if(a.num[i]==b.num[i]) { flag=-1; continue; } if(a.num[i]>b.num[i]) { flag=1; break; } else { if(a.num[i]<b.num[i]) { flag=0; break; } }
} if(flag==-1) { flag=panduan1(a,b); } return flag;}int panduan1(struct date a,struct date b){ int flag; if(strcmp(a.name,b.name)<0) { flag=1; } else { flag=0; } return flag;}


2026-04-26 20:36:05
广告
不感兴趣
开通SVIP免广告
  • 想一项
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
哪里错了,那位大神帮看看


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示