c # Заполните несколько массивов с вводом - PullRequest
0 голосов
/ 02 апреля 2011

Я пытаюсь заполнить 3 массива пользовательским вводом, он должен выглядеть следующим образом:

Enter account number 1: 29384
Enter the account balance: 1111
Enter the account holder last name: lastname
Enter account number 2: 34938
Enter the account balance: 2222
Enter the account holder last name: lastname2
Enter account number 3: 46372
Enter the account balance: 3333
Enter the account holder last name: lastname3
and so on...

У меня настроена программа для циклов for, чтобы заполнить массив из 5 строк, но он запрашивает всепять номеров счетов сначала идут на баланс и так далее

using System;
public class Array1
{
    public static void Main()
    {
        int[] scores = new int[5];
        int x;
        string inputString;
        int[] balance = new int[5];
        int y;

        for(x=0; x < scores.Length; ++x)
        {
            Console.Write("Enter account number {0} ", x + 1);
            inputString = Console.ReadLine();
            scores[x] = Convert.ToInt32(inputString);
            }
        for(y=0; y < balance.Length; ++y)
        {
            Console.Write("Enter the account balance ");
            inputString = Console.ReadLine();

            }
    }
}

Я уверен, что есть гораздо лучший способ написать это.Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 02 апреля 2011

Да.

Почему бы не иметь класс со структурой

class DataHolder
{
  public String account_number;
  public int balance;
  public String lastname;
}

Тогда вы, по крайней мере, держите соответствующие данные вместе

Ваш код выполняет то, что вы указали, запрашивает все счета, затем все остатки ..

Где 1 петли было бы достаточно

Если у вас был массив класса DataHolder

DataHolder[] testData = new DataHolder[5];
For (int x=0; < x testData.length; x++)
{
 Console.Write("Account Number");
 testData[x].account_number= Console.ReadLine();
 Console.Write("Balance");
 testData[x].balance=Convert.ToInt32(Console.ReadLine());
 Console.Write("LastName");
 testData[x].lastname=Console.ReadLine();
}
1 голос
/ 02 апреля 2011

Я думаю, вы просто хотите один для цикла.

for(x=0; x < scores.Length; ++x)
{
        Console.Write("Enter account number {0} ", x + 1);
        inputString = Console.ReadLine();
        scores[x] = Convert.ToInt32(inputString);

        Console.Write("Enter the account balance ");
        inputString = Console.ReadLine();

   // and so on
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...