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);
}
}
} 展开
现在渊子也来赛一赛马。假设每匹马都有恒定的速度,所以速度大的马一定比速度小的马先到终点(没有意外!!)。不允许出现平局。最后谁赢的场数多于一半(不包括一半),谁就是赢家(可能没有赢家)。渊子有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);
}
}
} 展开
展开全部
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;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询