C#初学者求助,下面是题目以及我自己写的代码,求指点!还有如何在输入一个数据后实现不换行

题目:现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是... 题目:
现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。渊子有N(1≤N≤1000)匹马参加比赛。对手的马的数量与渊子马的数量一样,并且知道所有的马的速度。聪明的你来预测一下这场世纪之战的结果,看看渊子能否赢得比赛。
输入

输入有多组测试数据。
每组测试数据包括3行:

第一行输入N(1≤N≤1000)。表示马的数量。
第二行有N个整型数字,即渊子的N匹马的速度。

第三行有N个整型数字,即对手的N匹马的速度。
当N为0时退出。

输出

若通过聪明的你精心安排,如果渊子能赢得比赛,那么输出“YES”。

否则输出“NO”。

样例输入

5
2 3 3 4 5
1 2 3 4 5
4
2 2 1 2
2 2 3 1
0

样例输出

YES
NO

下面是我写的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Csharptest004
{
class Program
{
static void Main(string[] args)
{
int n;

do
{

n = int.Parse(Console.ReadLine());
int [] z=new int[n];
int [] d=new int[n];
for (int i = 0; i <n; i++)
{
z[n] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < n; i++)
{
d[n] = int.Parse(Console.ReadLine());
}
int y = 0;
if (z[n]>d[n])
{
y = y + 1;
}
if (y>n/2)
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}
} while (n==0);
}
}
}
展开
 我来答
百度网友bcd45bd
2014-11-03 · TA获得超过214个赞
知道小有建树答主
回答量:216
采纳率:100%
帮助的人:161万
展开全部
using System;
using System.Collections.Generic;
using System.Text;
namespace racing_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Begin!");
            int horseCount = 0;//马匹数量
            int[] speed1 = null;//速度1
            int[] speed2 = null;//速度2
            string temp = "";
            do
            {
                temp = Console.ReadLine().Trim();
                if (temp == "0")//任何时候输出"0"行,退出程序
                {
                    return;
                }
                //取马匹的数量
                if (horseCount == 0)
                {
                    if (!int.TryParse(temp, out horseCount))
                    {
                        Console.WriteLine("请正确输入每组的马匹数量!");
                    }
                    continue;
                }
                //取第一组马的速度
                if (speed1 == null || speed1.Length < 1)
                {
                    if (!getSpeed(horseCount, temp, out speed1))
                    {
                        Console.WriteLine("请正确输入第一组马的速度数据!");
                    }
                    continue;
                }
                //取第二组马的速度
                if (speed2 == null || speed2.Length < 1)
                {
                    if (!getSpeed(horseCount, temp, out speed2))
                    {
                        Console.WriteLine("请正确输入第二组马的的速度数据!");
                        continue;
                    }
                }
                //输出比较结果
                int count = 0;
                for (int i = 0; i < horseCount; i++)
                {
                    //这里要注意:如果两马的速度相等,要判谁赢?
                    if (speed1[i] > speed2[i])
                    {
                        count++;
                    }
                }
                //输出结果
                if (count > (horseCount / 2))
                {
                    Console.WriteLine("YES");
                }
                else
                {
                    Console.WriteLine("NO");
                }
                //清理变量,以备下一次使用
                horseCount = 0;
                speed1 = speed2 = null;
            } while (true);
        }
        /// <summary>
        /// 取马的速度
        /// </summary>
        /// <param name="n">马匹数量</param>
        /// <param name="tempString">取数量的字符串</param>
        /// <param name="speed">OUT 速度</param>
        /// <returns>正确取出速度返回True,出错返回False</returns>
        private static bool getSpeed(int n, string tempString, out int[] speed)
        {
            string[] _sp;
            _sp = tempString.Split(' ');
            if (_sp.Length != n)
            {
                speed = null;
                return false;
            }
            speed = new int[n];
            for (int i = 0; i < _sp.Length; i++)
            {
                int _it;
                if (!int.TryParse(_sp[i], out _it))//速度必须为整数
                {
                    if (_it <= 0)//速度必须大于0
                    {
                        speed = null;
                        return false;
                    }
                }
                speed[i] = _it;//到此可以取值了
            }
            return true;
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式