【发布时间】:2018-12-12 22:08:48
【问题描述】:
我正在解决一个问题,我已经尝试了所有我能想到的 for 循环,但我不知道如何让它工作,因为我只开始使用 c# 和整体编程几周前。
编写一个输入五个数字的应用程序。读取每个数字时,如果数组中不存在该数字,则搜索数组,输出单词“new”并将数字插入数组。如果数组中确实存在该数字,则输出“存在”。输入所有五个数字后,输出数组的内容。
这是我目前所拥有的。感谢您的帮助
using System;
public class Program
{
// Main method begins execution of C# application
public static void Main(string[] args)
{
int[] array = new int[5];
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("Enter a number:");
array[i] = Convert.ToInt32(Console.ReadLine());
for (int a = 0; a < 5; a++)
{
if (array[i] != array[a])
{
array[i] = int.Parse(Console.ReadLine());
Console.WriteLine("new\n");
}
}
array[i] = int.Parse(Console.ReadLine());
Console.WriteLine("exists\n");
}
Console.WriteLine(array);
Console.ReadKey();
}
} // end class
【问题讨论】:
-
家庭作业问题?在我看来,您的代码逻辑似乎不太正确。您正在循环 5 次询问一个数字,然后在其中再次循环 5 次。再看看你如何构建你正在做的事情并在调试器中遵循它
-
那个问题是关于一个字符串数组,并没有说明如何在输入每个元素时检查它是新的还是存在的
-
@jigmurphy 小的更正将解决这个问题。数组[i] = int.Parse(Console.ReadLine());你为什么在这里读书?并且如果存在打印存在也改变逻辑然后循环结束并且它没有设置为新的。也许你可以添加一个标志
-
我无法将新元素与数组中的元素进行比较。我已经删除了第二个循环,因为它是不必要的。这样的事情会起作用吗? if (array[i] != array[a])
-
@jigmurphy 我不明白你面临什么问题。在您提供的代码中,您在检查它是否已经存在之前将元素添加到数组中。