猿问

如何在数组中写入第一个负数?

我只是编程新手,所以请原谅这个“简单”的问题。


我有一个包含负数和正数的数组列表。它在 C# 中。我想在控制台上写,这个数组列表中的第一个负数。怎么办?我尝试了一些事情,但它写的是所有负数或只写最后一个负数。第一个写不出来 任何人都可以帮助我吗?


这是我的代码示例:


int[] numbers = new int[] {13, 22, -5, 94, 66, -38, 41, -79, -1, 53};

int[] firstminus = new int[1];    


for (int i = 0; i < 10; i++)

{

    if (numbers[i] < 0)

        firstminus[0] = numbers[i];

}


Console.WriteLine(firstminus[0]);

Console.ReadLine();


陪伴而非守候
浏览 282回答 3
3回答

大话西游666

我会使用一个while循环——它对这个问题很有意义。另外——记住没有否定的用例——你也必须处理它。int[] numbers = new int[] {13, 22, -5, 94, 66, -38, 41, -79, -1, 53};int index = 0while (index < numbers.Length & numbers[index] >= 0)&nbsp;index++;if (index < numbers.Length & numbers[index] < 0)&nbsp; &nbsp; Console.WriteLine(numbers[index]);else&nbsp;&nbsp; &nbsp; Console.WriteLing("No neg.");&nbsp; &nbsp; Console.ReadLine();

RISEBY

要更正您的尝试break,请在找到号码后添加一个。这将终止循环,您将拥有数组中的第一个负数。for (int i = 0; i < 10; i++){&nbsp; &nbsp; if (numbers[i] < 0)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; firstminus[0] = numbers[i];&nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; }}注意2点:不需要数组firstminus——最好是简单的int.循环运行到10.&nbsp;这是一个神奇的数字。而是运行直到数组的长度。所以:int firstMinus;for (int i = 0; i < numbers.Length; i++){&nbsp; &nbsp; if (numbers[i] < 0)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; firstminus = numbers[i];&nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; }}最后,如果您熟悉 linq,那么只需使用.FirstOrDefaultwhich 返回集合中与谓词匹配的第一项(default如果没有符合谓词,则返回类型的):var firstMinus = numbers.FirstOrDefault(i => i < 0);

慕桂英546537

你已经接近了,只要break你找到第一个负数,你就需要这样做。IEif (numbers[i] < 0) {&nbsp; &nbsp; &nbsp;firstminus[0] = numbers[i];&nbsp; &nbsp; &nbsp;break; // terminate the loop}顺便说一句,我会使用一个int变量而不是构造一个数组来存储结果。IEint firstminus = 0;for (int i = 0; i < numbers.Length; i++){&nbsp; &nbsp;if (numbers[i] < 0) {&nbsp; &nbsp; &nbsp; firstminus = numbers[i];&nbsp; &nbsp; &nbsp; break; // terminate the loop&nbsp; &nbsp;}}另一方面,最简单的方法是通过 LINQ:numbers.FirstOrDefault(x => x < 0);
随时随地看视频慕课网APP
我要回答