zoukankan      html  css  js  c++  java
  • OpenJudge百炼习题解答(C++)--题2704:竞赛评分

    题:

    总时间限制: 
    1000ms 
    内存限制: 
    65536kB
    描写叙述
    现举行一次小竞赛,參赛的3支队伍,编号为1,2,3.每支队列轮流回答问题,假设回答正确,加10分;回答错误,扣10分;放弃回答不得分.经过多轮答题后,我们要统计各队的名次和得分.
    输入
    第一行为回答问题的轮次数n.
    其余各行分别为1,2,3号队伍答题的结果,回答正确为right,错误为wrong,放弃为give-up.
    输出
    按名次输出各队的编号和得分.名次同样的在同一行输出,且编号小者靠前.
    例子输入:
    4
    right wrong give-up
    right right right
    wrong right right
    right right right
    例子输出:
    (3,30)
    (1,20)(2,20)

    解:

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	struct S{
    		int All;
    		int Nu;
    	};
        struct S st[3];
        for(int i=0;i<3;i++)
        {
        	st[i].All=0;
        	st[i].Nu=i+1;
    	}
    	int n;
    	cin>>n;
    	string A[n][3];
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<3;j++)
    		{
    			cin>>A[i][j];
    		}
    	}
    	for(int i=0;i<3;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(A[j][i]=="right")
    			{
    				st[i].All+=10;
    			}
    			else if(A[j][i]=="wrong")
    			{
    				st[i].All-=10;
    			}
    			
    		}
    	}
    	struct S t;
    	for(int i=0;i<3;i++)
    	{
    		for(int j=0;j<2;j++)
    		{
    			if(st[j].All<st[j+1].All)
    			{
    				t=st[j];
    				st[j]=st[j+1];
    				st[j+1]=t;
    			}
    		}
    	}
    	for(int i=0;i<3;i++)
    	{
    		if(i>0){
    		
    		if(st[i].All!=st[i-1].All)
    		{
    			cout<<endl;
    		}
    	
    	}
    		cout<<"("<<st[i].Nu<<","<<st[i].All<<")";
    	}
    	
    	return 0;
    }


    推荐文章:那些年,做的几个应用


  • 相关阅读:
    瑜伽
    尼姆博弈(Nimm's Game)
    asp.net 自定义控件之ItemTemplate
    Tab控件css样式布局
    css 左右布局一例
    C# HotKey 的另一种方法
    asp.net 自定义tab控件实现
    c# console 程序实现 hot key
    c# console 在非主线程Hot Key
    记录一次sql 更新出现的 “出现不支持的SQL92 标记 :126” 错误
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7132363.html
Copyright © 2011-2022 走看看