C# “告诉”解决方案的目的是什么?做些调查,你会发现的!发现后,你永远不会忘记。有人告诉你,你在两周内记不起来了……谢谢,但我如何使用阵列来防止这种重复?@user3504400(假设这有点像真实的银行场景)你不需要这样做。两个人可以拥有相同的PIN码。但是如
C# “告诉”解决方案的目的是什么?做些调查,你会发现的!发现后,你永远不会忘记。有人告诉你,你在两周内记不起来了……谢谢,但我如何使用阵列来防止这种重复?@user3504400(假设这有点像真实的银行场景)你不需要这样做。两个人可以拥有相同的PIN码。但是如,c#,arrays,random,C#,Arrays,Random,“告诉”解决方案的目的是什么?做些调查,你会发现的!发现后,你永远不会忘记。有人告诉你,你在两周内记不起来了……谢谢,但我如何使用阵列来防止这种重复?@user3504400(假设这有点像真实的银行场景)你不需要这样做。两个人可以拥有相同的PIN码。但是如果你随机生成它们,你不想给它们相同的PIN码。 class BankAccount { private string firstName; private string lastName; private int acc
“告诉”解决方案的目的是什么?做些调查,你会发现的!发现后,你永远不会忘记。有人告诉你,你在两周内记不起来了……谢谢,但我如何使用阵列来防止这种重复?@user3504400(假设这有点像真实的银行场景)你不需要这样做。两个人可以拥有相同的PIN码。但是如果你随机生成它们,你不想给它们相同的PIN码。
class BankAccount
{
private string firstName;
private string lastName;
private int accountNumber;
private decimal balance;
static public int customers = 0;
private int pinNumber;
public decimal Balance
{
get
{
return balance;
}
set
{
if (value >= 0)
balance = value;
else
{
Console.WriteLine("There will be an overdraft fee of $10.00.");
balance = value - 10;
}
}
}
public string FirstName
{
get
{
return firstName;
}
}
public string LastName
{
get
{
return lastName;
}
}
public int AccountNumber
{
get
{
return accountNumber;
}
}
public int PinNumber
{
get
{
return pinNumber;
}
}
public BankAccount(string firstNameValue, string lastNameValue)
{
firstName = firstNameValue;
lastName = lastNameValue;
accountNumber = customers + 1;
Random pin = new Random();
pinNumber = pin.Next(1111, 9999);
Balance = 0;
customers++;
}
public BankAccount()
{
Balance = 0;
customers++;
}
public void Credit(decimal amount)
{
Balance = Balance + amount;
}
public void Debit(decimal amount)
{
if (amount > Balance)
Console.WriteLine("Debit amount exceeded account balance.");
Balance = Balance - amount;
}
public static decimal AverageBalance(BankAccount[] accounts)
{
int count = 0;
decimal total = 0;
for (int i = 0; i < accounts.Length; i++)
{
if (accounts[i] != null)
{
total += accounts[i].Balance;
count++;
}
}
return total / count;
}
}
static Random random = new Random();
// later, in the constructor
pinNumber = random.Next(0, 10000); // 0 <= pinNumber < 10000
public void SetValues(int[] array)
{
Random randomNumber = new Random();
for (int i = 0; i < array.Length; i++)
{
bool distinctNumber = true;
int number = randomNumber.Next(1, 100);
for (int j = 0; j < i; j++)
{
if (number == array[j])
{
distinctNumber = false;
break;
}
}
if ( distinctNumber )
array[i] = number;
else
--i;
}
}
Random rnd = new Random();
var pin = new[] {-1, -1, -1, -1};
for(var i = 0; i < pin.length; i++)
int nextDigit = rnd.Next(0, 10);
while (pin.contains(nextDigit)){ nextDigit + rnd.Next(0, 10); }
pin[i] = nextDigit;
}
public static void Shuffle<T>(this IList<T> list)
{
Random rng = new Random();
int n = list.Count;
while (n > 1) {
n--;
int k = rng.Next(n + 1);
T value = list[k];
list[k] = list[n];
list[n] = value;
}
}
var pinDigits = new List<int>(Enumerable.Range(0,10));
pinDigits.Shuffle();
return pinDigits.Take(4);
public static IEnumerable<T> GeneratePIN<T>(IEnumerable<T> valueRange, int length)
{
var pinValues = new List<T>(valueRange);
pinValues.Shuffle();
return pinValues.Take(length);
}