数组中的最大值,并检查数组中的所有元素是否具有相等的值。(C#)

数组中的最大值,并检查数组中的所有元素是否具有相等的值。(C#),c#,arrays,C#,Arrays,我在做一个项目。用户输入一个值(n),该值乘以2。然后,用户输入与新数字(n*2)完全相同的次数。所以我必须弄清楚每对数字是否相等,如果不是,打印出其中一对之间的最大差异。为了做到这一点,我需要数组中的最大值,并以某种方式检查数组中的所有元素是否相等。我是C#新手,对数组知之甚少。(顺便说一句,对语言的使用感到抱歉,我是外国人) 到目前为止,我提出了以下代码: using System; using System.Collections.Generic; using System.Linq; u

我在做一个项目。用户输入一个值(n),该值乘以2。然后,用户输入与新数字(n*2)完全相同的次数。所以我必须弄清楚每对数字是否相等,如果不是,打印出其中一对之间的最大差异。为了做到这一点,我需要数组中的最大值,并以某种方式检查数组中的所有元素是否相等。我是C#新手,对数组知之甚少。(顺便说一句,对语言的使用感到抱歉,我是外国人) 到目前为止,我提出了以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EqualPairs
{
class Program
{
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        int sum = 0;
        int diff = 0;
        int[] sumAll = new int[n];
        int[] differ = new int[n];
        for (int i = 1; i <= n; i++)
        {
            sum = 0;
            diff = 0;
            for (int j = 1; j <= 2; j++)
            {
                int number = int.Parse(Console.ReadLine());
                sum = sum + number;
                diff = Math.Abs(diff - number);
            }
            sumAll[i - 1] = sum;
            differ[i - 1] = diff;
        }
    }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间相等
{
班级计划
{
静态void Main(字符串[]参数)
{
int n=int.Parse(Console.ReadLine());
整数和=0;
int-diff=0;
int[]sumAll=新的int[n];
int[]不同=新的int[n];

对于(int i=1;i我不确定您的程序到底想做什么,但要回答您的问题:

在数组中查找最大值:

int maxValue = yourArray.Max();
检查数组中的所有值是否相等(使用System.Linq):

根据OP的评论进行编辑:

如果我是你,我会创建一个中间数组
couplesArray
。不知道你打算如何设置输入和所有这些,但我假设
yourray
的值是偶数。我不知道你是如何定义最大差异和所有这些的,所以也许可以放弃我的一些Math.Abs()调用:

int[]yourArray={1,2,0,3,4,-1};
int[]couplesArray=new int[yourArray.Count()/2];
for(int i=0;ix==first);
int maxDifference=Math.Max(Math.Abs(couplesArray.Max()),Math.Abs(couplesArray.Min());
string outputString=AllegementSequal?“相等”:maxDifference.ToString();
Console.WriteLine(输出字符串);

我不确定您的程序到底想做什么,但要回答您的问题:

在数组中查找最大值:

int maxValue = yourArray.Max();
检查数组中的所有值是否相等(使用System.Linq):

根据OP的评论进行编辑:

如果我是你,我会创建一个中间数组
couplesArray
。不知道你打算如何设置输入和所有这些,但我假设
yourray
的值是偶数。我不知道你是如何定义最大差异和所有这些的,所以也许可以放弃我的一些Math.Abs()调用:

int[]yourArray={1,2,0,3,4,-1};
int[]couplesArray=new int[yourArray.Count()/2];
for(int i=0;ix==first);
int maxDifference=Math.Max(Math.Abs(couplesArray.Max()),Math.Abs(couplesArray.Min());
string outputString=AllegementSequal?“相等”:maxDifference.ToString();
Console.WriteLine(输出字符串);

很抱歉,但是您的
?true:false
部分非常冗余。只需使用表达式的返回值;)最后为什么要使用三元运算符?Enumerable.All()已经返回一个布尔值。@Stefan:你完全正确,所以我编辑了我的文章。我目前正在处理一些旧代码,其中有太多的条件运算符,所以我想它只是卡在我的脑子里了。谢谢你的更正!我的意思是,当你输入一个数字(例如3)时,你必须输入两倍以上的数字(例如1,2,0,3,4,-1).现在将每两个数字分成一对。(couple1=1&2,couple2=0&3,couple3=4&-1)。现在,当你对每对(组)中的所有数字求和时,你会得到couple1=3,couple2=3,couple3=3。如果所有值都相等,打印“相等”。如果值不相等,打印最大的差值(例如,couple1Diff=1,couple2Diff=2,couple3Diff=3)输出:3;我不知道你是否能理解它,我是外国人。对不起。VG98:我更新了我的代码。如果我误解了任何内容,请告诉我。对不起,但是你的
?true:false
部分非常冗余。只需使用表达式的返回值;)为什么要在最后使用三元运算符?Enumerable.All()已经返回了一个布尔值。@Stefan:你完全正确,所以我编辑了我的文章。我目前正在处理一些旧代码,其中有太多的条件运算符,所以我想它只是卡在我的脑子里了。谢谢你的更正!我的意思是当你输入一个数字时(例如3),您必须再输入两次数字(例如,1,2,0,3,4,-1)。现在将每两个数字拆分为一对。(couple1=1&2,couple2=0&3,couple3=4&-1)。现在,当您对每对(组)中的所有数字求和时,您将得到couple1=3,couple2=3,couple3=3。如果所有值都相等,请打印“相等”。如果值不相等,请打印出最大的差异(例如,couple1Diff=1,couple2Diff=2,couple3Diff=3)输出:3;我不知道您是否能理解,我是外国人。对不起。VG98:我更新了代码。如果我有任何误解,请告诉我。
int[] yourArray = { 1, 2, 0, 3, 4, -1};
int[] couplesArray = new int[yourArray.Count() / 2];

for (int i = 0; i < couplesArray.Length; i++)
{
    couplesArray[i] = yourArray[2 * i] + yourArray[2 * i + 1];
}


int first = couplesArray.First();
bool allElementsEqual = couplesArray.All(x => x == first);

int maxDifference = Math.Max(Math.Abs(couplesArray.Max()), Math.Abs(couplesArray.Min()));

string outputString = allElementsEqual ? "Equal" : maxDifference.ToString();

Console.WriteLine(outputString);