using System;
using System.Collections .Generic ;
using System.Linq ;
using System.Text ;
using System.Threading .Tasks ;
namespace ConsoleApplication6
{
class Program
{
static void InputData( string[ ] player, int [ ] score, ref int numPlayer)
{
// input items up to the number of the array size
while ( numPlayer < player.Length )
{
Console.Write ( "Enter player name (Q to quit): " ) ;
player[ numPlayer] = Console.ReadLine ( ) ;
if ( ( player[ numPlayer] == "Q" ) || ( player[ numPlayer] == "q" ) )
{
Console.WriteLine ( ) ;
break ;
}
else
{
Console.Write ( "Enter score for " + player[ numPlayer] + ": " ) ;
score[ numPlayer] = Convert.ToInt32 ( Console.ReadLine ( ) ) ;
numPlayer++;
}
}
}
static void DisplayPlayerData( string[ ] player, int [ ] score, int numPlayer)
{
Console.WriteLine ( "Name Score" ) ;
for ( int i = 0 ; i < numPlayer; i++ )
Console.WriteLine ( "{0, -16} {1, 8}" , player[ i] , score[ i] ) ;
}
static double CalculateAverageScore( int [ ] score, ref int numPlayer) {
return ( double ) score.Sum ( ) / numPlayer;
}
static void DisplayBelowAverage( string[ ] player, int [ ] score, int numPlayer)
{
double avgScore = CalculateAverageScore( score, ref numPlayer) ;
Console.WriteLine ( "Players who scored below average" ) ;
Console.WriteLine ( "Name Score" ) ;
for ( int i = 0 ; i < numPlayer; i++ )
{
if ( score[ i] < avgScore)
{
Console.WriteLine ( "{0, -16} {1}" , player[ i] , score[ i] ) ;
}
}
}
static void Main( string[ ] args) {
//Variables
string[ ] player = new string[ 100 ] ;
int [ ] score = new int [ 100 ] ;
int numPlayer = 0 ;
InputData( player, score, ref numPlayer) ;
DisplayPlayerData( player, score, numPlayer) ;
double avgScore = CalculateAverageScore( score, ref numPlayer) ;
Console.WriteLine ( "Average Score:" + avgScore) ;
DisplayBelowAverage( player, score, numPlayer) ;
Console.ReadLine ( ) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKbmFtZXNwYWNlIENvbnNvbGVBcHBsaWNhdGlvbjYKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIElucHV0RGF0YShzdHJpbmdbXSBwbGF5ZXIsIGludFtdIHNjb3JlLCByZWYgaW50IG51bVBsYXllcikKICAgICAgICB7CiAgICAgICAgICAgIC8vIGlucHV0IGl0ZW1zIHVwIHRvIHRoZSBudW1iZXIgb2YgdGhlIGFycmF5IHNpemUKICAgICAgICAgICAgd2hpbGUgKG51bVBsYXllciA8IHBsYXllci5MZW5ndGgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoIkVudGVyIHBsYXllciBuYW1lIChRIHRvIHF1aXQpOiAiKTsKICAgICAgICAgICAgICAgIHBsYXllcltudW1QbGF5ZXJdID0gQ29uc29sZS5SZWFkTGluZSgpOwogICAgICAgICAgICAgICAgaWYgKChwbGF5ZXJbbnVtUGxheWVyXSA9PSAiUSIpIHx8IChwbGF5ZXJbbnVtUGxheWVyXSA9PSAicSIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZSgiRW50ZXIgc2NvcmUgZm9yICIgKyBwbGF5ZXJbbnVtUGxheWVyXSArICI6ICIpOwogICAgICAgICAgICAgICAgICAgIHNjb3JlW251bVBsYXllcl0gPSBDb252ZXJ0LlRvSW50MzIoQ29uc29sZS5SZWFkTGluZSgpKTsKICAgICAgICAgICAgICAgICAgICBudW1QbGF5ZXIrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIHN0YXRpYyB2b2lkIERpc3BsYXlQbGF5ZXJEYXRhKHN0cmluZ1tdIHBsYXllciwgaW50W10gc2NvcmUsIGludCBudW1QbGF5ZXIpCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiTmFtZSAgICAgICAgICAgU2NvcmUiKTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1QbGF5ZXI7IGkrKykKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJ7MCwgLTE2fSB7MSwgOH0iLCBwbGF5ZXJbaV0sIHNjb3JlW2ldKTsKICAgICAgICB9CgoKICAgICAgICBzdGF0aWMgZG91YmxlIENhbGN1bGF0ZUF2ZXJhZ2VTY29yZShpbnRbXSBzY29yZSwgcmVmIGludCBudW1QbGF5ZXIpIHsKCQkgICAgIHJldHVybiAoZG91YmxlKSBzY29yZS5TdW0oKS9udW1QbGF5ZXI7CgkJfQoKICAgICAgICBzdGF0aWMgdm9pZCBEaXNwbGF5QmVsb3dBdmVyYWdlKHN0cmluZ1tdIHBsYXllciwgaW50W10gc2NvcmUsIGludCBudW1QbGF5ZXIpCiAgICAgICAgewogICAgICAgICAgICBkb3VibGUgYXZnU2NvcmUgPSBDYWxjdWxhdGVBdmVyYWdlU2NvcmUoc2NvcmUsIHJlZiBudW1QbGF5ZXIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiUGxheWVycyB3aG8gc2NvcmVkIGJlbG93IGF2ZXJhZ2UiKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIk5hbWUgICAgICAgICAgIFNjb3JlIik7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUGxheWVyOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChzY29yZVtpXSA8IGF2Z1Njb3JlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJ7MCwgLTE2fSB7MX0iLCBwbGF5ZXJbaV0sIHNjb3JlW2ldKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpIHsKCQkgICAgLy9WYXJpYWJsZXMKCQkgICAgc3RyaW5nW10gcGxheWVyID0gbmV3IHN0cmluZ1sxMDBdOwoJCSAgICBpbnRbXSBzY29yZSA9IG5ldyBpbnRbMTAwXTsKCQkgICAgaW50IG51bVBsYXllciA9IDA7CgkJCgkJICAgIElucHV0RGF0YShwbGF5ZXIsIHNjb3JlLCByZWYgbnVtUGxheWVyKTsKCQkgICAgRGlzcGxheVBsYXllckRhdGEocGxheWVyLCBzY29yZSwgbnVtUGxheWVyKTsKCQkgICAgZG91YmxlIGF2Z1Njb3JlID0gQ2FsY3VsYXRlQXZlcmFnZVNjb3JlKHNjb3JlLCByZWYgbnVtUGxheWVyKTsKCQkgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkF2ZXJhZ2UgU2NvcmU6IiArIGF2Z1Njb3JlKTsKCQkgICAgRGlzcGxheUJlbG93QXZlcmFnZShwbGF5ZXIsIHNjb3JlLCBudW1QbGF5ZXIpOwoJCSAgICBDb25zb2xlLlJlYWRMaW5lKCk7CgkJfQogICAgfQp9