2016-02-09 3 views
-3

Новое на C# и не может понять, на основе чего начать, бросая целые числа чтения в массив, а затем перечитывая числа в массиве. Любая помощь будет оценена по достоинству.C# Looping int to array then counting

Формат Я следующее:

Многократно попросить пользователя ввести целое число от 1 до 10, или введите «Q», чтобы бросить курить. Используйте массив, чтобы отслеживать, сколько раз вводилось число . Если пользователь вводит число ниже 0 или больше 10, отображает сообщение об ошибке.

После того, как пользователь закончил ввод чисел, отобразите кол-во раз каждое число было введено. Не показывать число для цифр, которое не было введено .

Пример:

Enter an integer or ‘q’ to quit: 3 
Enter an integer or ‘q’ to quit: 7 
Enter an integer or ‘q’ to quit: 4 
Enter an integer or ‘q’ to quit: 12 
Your number must be between 1 and 10. 
Enter an integer or ‘q’ to quit: 7 
Enter an integer or ‘q’ to quit: 7 
Enter an integer or ‘q’ to quit: 4 
Enter an integer or ‘q’ to quit: q 
Number Count 
3 1 
7 3 
4 2 

Моего код до сих пор:

int[] count = new int[10]; 
bool isRunning = true; 

while (isRunning) 
{ 
    Console.Write("Enter an integer or ‘q’ to quit: "); 
    string input = Console.ReadLine(); 

    if (input == "q") 
     isRunning = false; 
    else if 
     //cant figure out the way to int32.TryParse here. 
    else 
     Console.WriteLine("Your number must be between 1 and 10.\n"); 
} 

for (int i = 0; i < 10; i++) 
{ 
    //Prints out number and count 
} 
+3

В чем проблема? У вас есть номера, и у вас есть счетчик для каждого из них (в массиве чисел) ... приращивайте правильный счетчик для каждого введенного числа, а затем выведите все счетчики, которые не равны нулю. – Haukinger

+1

Ваши требования не требуют от вас соблюдения отслеживать каждую запись - сколько раз было введено каждое число. Используйте массив из 10 "ведер" и увеличьте значение соответствующего ведра. –

+0

просто создайте список и используйте функцию '.Sum()' в списке .. с одной строкой кода очень просто .. выполните поиск в google в 'List .Sum' – MethodMan

ответ

0

Вашего массив должен время хранения чисел Apperance, а не сами числа.

int[10] Num; 
while(true) 
{ 
    Console.WriteLine("Enter an integer or ‘q’ to quit: "); 
    string in = Console.ReadLine(); 
    if(in=="q") 
    { 
     break; 
    } 
    else if(int.Parse(in)>-1&&int.Parse(in)<11) 
    { 
     Num[int.parse(in)]++; 
    } 
    for(int i=0; i<10; i++) 
    { 
     if(Num[i]>0) 
      Console.WriteLine(i.ToString() + " " Num[i].ToString()); 
    } 
} 
+1

Действительные числа варьируются от 1 до 10, поэтому вам не хватает '-1' или двух ... – Haukinger

+1

Вы находитесь на правильном пути, но разбор трех раз по тем же данным? И что, если я наберу Z вместо q. Int.Parse будет бросать – Steve

+0

Как и в задаче, пользователю задают числа от 1 до 10 и char 'q' не что иное. Никто не просил проверить исключения. Но с разбором 3 раза я согласился. Просто слишком ленив, чтобы создать новую разновидность). – G0867532