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

 
 
 
日一二三四五六
       
       
       
       
       
       

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

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

本吧签到人数:0

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

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

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

奖牌榜每日更新原理

  • 只看楼主
  • 收藏

  • 回复
  • 某野心家
  • 马猴烧酒
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{struct team
{int rank;
char area[20];
int gold;
int silver;
int copper;
int total;
}s[99];
struct team_add
{int rank;
char area[20];
int gold;
int silver;
int copper;
int total;
}a[99];
FILE *fp;
int areas=0,news;
if((fp=fopen("奖牌榜练习1.txt","w"))==NULL)
{printf("打开文件失败\n");
exit(0);}
for(int d=1;d<=5;d++)
{printf("请输入各地区第%d天获得奖牌数,以井号结束:\n",d);
printf("地区 金 银 铜\n");
for(int i=0;i<99;i++)
{scanf("%s%d%d%d",a[i].area,&a[i].gold,&a[i].silver,&a[i].copper);
if(getchar()=='#')
{news=i+1;
break;}}
for(int i=0;i<news;i++)
{int p=0;
for(int j=0;j<areas;j++)
{if(strcmp(s[j].area,a[i].area)==0)
{p=1;
s[j].gold+=a[i].gold;
s[j].silver+=a[i].silver;
s[j].copper+=a[i].copper;}}
if(p==0)
{areas++;
strcpy(s[areas-1].area,a[i].area);
s[areas-1].gold=a[i].gold;
s[areas-1].silver=a[i].silver;
s[areas-1].copper=a[i].copper;}}
for(int i=0;i<areas;i++)
{s[i].rank=1;
s[i].total=s[i].gold+s[i].silver+s[i].copper;}
for(int i=0;i<areas;i++)
{for(int j=0;j<areas;j++)
{if((s[j].gold>s[i].gold)||
(s[j].gold==s[i].gold&&s[j].silver>s[i].silver)||
(s[j].gold==s[i].gold&&s[j].silver==s[i].silver&&s[j].copper>s[i].copper))
s[i].rank++;}}
fprintf(fp,"截至第%d天奖牌榜排名如下:\n",d);
fprintf(fp,"排名 地区 金 银 铜 总数\n");
for(int i=0;i<areas;i++)
{for(int j=0;j<areas;j++)
{if(s[j].rank==i+1)
fprintf(fp,"%4d %-10s %2d %2d %2d %4d\n",s[j].rank,s[j].area,s[j].gold,s[j].silver,s[j].copper,s[j].total);}}
rewind(fp);
printf("\n截至第%d天奖牌榜排名如下:\n",d);
printf("排名 地区 金 银 铜 总数\n");
for(int i=0;i<areas;i++)
{for(int j=0;j<areas;j++)
{if(s[j].rank==i+1)
{fscanf(fp,"%d%s%d%d%d%d",&s[j].rank,s[j].area,&s[j].gold,&s[j].silver,&s[j].copper,&s[j].total);
printf("%4d %-10s %2d %2d %2d %4d\n",s[j].rank,s[j].area,s[j].gold,s[j].silver,s[j].copper,s[j].total);}}}
}
fclose(fp);
}


登录百度账号

扫二维码下载贴吧客户端

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