每次添加新数字时,对 List<int> 的每个元素进行除法或乘法
Divide or multiply each element of a List<int> every time a new number is added
输入:一次输入一个数字。
输出:输入的列表,其中每个偶数除以 2,每个奇数乘以 3。
步骤是这样的:
- 输入 4 并得到输出 [2]
- 输入 8 并得到输出 [1,4]
- 输入 9 并得到输出 [3,2,27]
这是我当前的代码:
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : ");
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe);
Console.WriteLine("Die Zahlen sind : ");
nummerListe.Add(nummer);
for (int i = 1; i <= nummerListe.Count; i++)
{
Console.WriteLine(nummerListe[i]);
Console.Write(" , ");
if (nummer % 2 == 0)
{
nummer /= 2;
Console.WriteLine(nummerListe[0] = nummer);
}
else
{
nummer *= 3;
Console.WriteLine(nummerListe[0]=nummer);
}
}
Console.WriteLine(" ");
}
首先,您需要了解 C# 列表是从 0 基索引的,这意味着您的循环应该如下所示:
for (int i = 0; i < nummerListe.Count; i++)
而不是
for (int i = 1; i <= nummerListe.Count; i++)
那么你应该仔细检查一下:
Console.WriteLine(nummerListe[0] = nummer);
因为:
1 - 您必须将 0
替换为 i
(nummerListe[i] = nummer
)
2 - 你不想打印作业的结果(你现在这样做)。
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : ");
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe);
Console.WriteLine("Die Zahlen sind : ");
nummerListe.Add(nummer);
nummerListe = nummerListe.Select(n => (n % 2 == 0) ? n / 2 : n * 3).ToList();
Console.WriteLine(String.Join(", ", nummerListe));
}
}
}
你可以试试online.
您的代码存在一些问题:
您从 1 而不是 0 开始循环,忽略了第一个元素。
您正在更改 nummer
而不是列表中的实际元素。
您总是将 nummer
的值分配给列表的第一个元素:nummerListe[0] = nummer
.
尝试这样的事情:
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : "); // Enter the number
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe); // Consider using int.TryParse() instead.
nummerListe.Add(nummer);
for (int i = 0; i < nummerListe.Count; i++)
{
if (nummerListe[i] % 2 == 0)
{
nummerListe[i] /= 2;
}
else
{
nummerListe[i] *= 3;
}
}
Console.WriteLine("Die Zahlen sind : "); // Numbers
Console.WriteLine(string.Join(",", nummerListe));
}
输入:一次输入一个数字。
输出:输入的列表,其中每个偶数除以 2,每个奇数乘以 3。
步骤是这样的:
- 输入 4 并得到输出 [2]
- 输入 8 并得到输出 [1,4]
- 输入 9 并得到输出 [3,2,27]
这是我当前的代码:
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : ");
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe);
Console.WriteLine("Die Zahlen sind : ");
nummerListe.Add(nummer);
for (int i = 1; i <= nummerListe.Count; i++)
{
Console.WriteLine(nummerListe[i]);
Console.Write(" , ");
if (nummer % 2 == 0)
{
nummer /= 2;
Console.WriteLine(nummerListe[0] = nummer);
}
else
{
nummer *= 3;
Console.WriteLine(nummerListe[0]=nummer);
}
}
Console.WriteLine(" ");
}
首先,您需要了解 C# 列表是从 0 基索引的,这意味着您的循环应该如下所示:
for (int i = 0; i < nummerListe.Count; i++)
而不是
for (int i = 1; i <= nummerListe.Count; i++)
那么你应该仔细检查一下:
Console.WriteLine(nummerListe[0] = nummer);
因为:
1 - 您必须将 0
替换为 i
(nummerListe[i] = nummer
)
2 - 你不想打印作业的结果(你现在这样做)。
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : ");
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe);
Console.WriteLine("Die Zahlen sind : ");
nummerListe.Add(nummer);
nummerListe = nummerListe.Select(n => (n % 2 == 0) ? n / 2 : n * 3).ToList();
Console.WriteLine(String.Join(", ", nummerListe));
}
}
}
你可以试试online.
您的代码存在一些问题:
您从 1 而不是 0 开始循环,忽略了第一个元素。
您正在更改
nummer
而不是列表中的实际元素。您总是将
nummer
的值分配给列表的第一个元素:nummerListe[0] = nummer
.
尝试这样的事情:
List<int> nummerListe = new List<int>();
while (true)
{
Console.WriteLine("Geben Sie die Zahlen ein : "); // Enter the number
string eingabe = Console.ReadLine();
int nummer = int.Parse(eingabe); // Consider using int.TryParse() instead.
nummerListe.Add(nummer);
for (int i = 0; i < nummerListe.Count; i++)
{
if (nummerListe[i] % 2 == 0)
{
nummerListe[i] /= 2;
}
else
{
nummerListe[i] *= 3;
}
}
Console.WriteLine("Die Zahlen sind : "); // Numbers
Console.WriteLine(string.Join(",", nummerListe));
}