【发布时间】:2021-12-16 13:54:55
【问题描述】:
我必须创建一个函数,使我能够为五金店中的每个客户输入数据。我应该为每个客户输入的数据是:名字、姓氏、购买的产品及其价格。此数据应存储在数组中。让这个函数声明一个 1D 容器,让用户用上述数据初始化这个 1D 容器,让这个函数把这个 1D 容器返回给 MAIN。在 MAIN 中,调用此函数 3 次,为 3 个客户创建数据。
之后,我需要创建另一个函数,将来自 MAIN 的所有三个 1D 客户数据容器作为参数,并将他们购买的产品的所有价格相加。让这个函数将总成本返回给 MAIN。 (这就是我卡住的地方。)
最后,我需要创建一个过程,将返回给 MAIN 的总成本作为参数,并确定这个总价格(设置为简单整数)是否是质数:
如果价值是质数,打印:“客户赢得价格” 否则,打印:“客户不会得到价格”
我被第二个函数卡住了,我试图做一个 C 风格的 for 循环,但它不起作用。
我尝试将这三个价格添加为带有索引但没有的数组位置。
这是我的代码:
using System;
namespace ghghh
{
class Program
{
public static string [] inputData()
{
Console.WriteLine("Please enter your first name: ");
string FirstName = Console.ReadLine();
Console.WriteLine("Please enter your last name: ");
string LastName = Console.ReadLine();
Console.WriteLine("Please enter the product you ahve bought: ");
string product = Console.ReadLine();
Console.WriteLine("Please enter the price: ");
string price = Console.ReadLine();
string[] info = new string[4] { FirstName, LastName, product, price };
return info;
}
public static void sumOfPrice(string[] arr)
{
for(int i = 0; i<arr.Length; i++)
{
string sum = arr[i] + arr[i] + arr[i];
}
}
public static void isTotalCostPrime(int n)
{
if(n %2 == 0)
{
Console.WriteLine("Customers wont get get the prize.");
}
else
{
Console.WriteLine("Customers win the prize");
}
}
public static void Main (string[] args)
{
string[] final = inputData();
sumOfPrice(final);
}
}
}
【问题讨论】:
-
我假设这是家庭作业,所以我不会给你一个解决方案。您的代码只允许输入单个购买的物品。总结起来很容易(
return price)。您可能想要做的是创建一个类型(class),其中包含您描述的四个属性(第一个、最后一个、产品和价格 - 价格为decimal)。然后在inputData中有一个循环(顺便说一下,C# 中的约定是方法名称是这样写的:InputData)。将每个类实例添加到List<YourClass>(就像一个数组,但有弹性 - 使用数组你需要知道前面有多少项)。 -
获得一组条目后,计算总和很容易 - 只需遍历集合(使用
foreach)并对价格属性求和。我建议你使用decimal.TryParse将输入的字符串转换为数字(这样如果有人输入one dollar而不是1.00,你可以重新提示)。建议:1)修复你的命名空间。 2)have拼写为have,而不是ahve -
真正令人困惑的作业。这似乎暗示名称、产品和价格都存储在同一个“一维容器”中,即使它们是不同的数据类型。这已经是一个很奇怪的设计了。一维容器是否需要是数组?在我看来,
Dictionary<string,object>可能更有意义。你有选择吗? -
回复 Flydog57:谢谢。这不是作业,是朋友/同学给的问题。我们经常给自己这样的问题来互相拉伸。
-
回复John Wu:感谢您的回复。我可以使用列表或数组。