-3

在不使用 List、ArraySort、Classes、Structs、Objects、LINQ 等任何东西的情况下,我将如何组合在一起说出我从调查中获取的年龄列表,数组中的每个元素代表一个人的年龄。

然后有一个方法来计算每个年龄有多少人,然后将这些人分为 5 个年龄组,0-18、18-30、31-45、46-64 和 65 岁及以上。假设有 8 个 18-30 岁的人是这样的。

我认为我通过结合两种方法来解决这个问题,首先是通过数组与数据递增计数数组,另一种是使用 while 循环对数据进行分组,但它似乎只是显示年龄本身。

4

1 回答 1

1

初始化

int[] input = new int[] { 5, 10, 20, 35, 50, 68 };
int[,] ageGroups = new int[5, input.Length];
int[] ageCounters = new int[5];

分组

foreach(int age in input)
{
    if(age >= 0 && age < 18)
    {
        ageGroups[0, ageCounters[0]] = age;
        ageCounters[0]++;
    }
    else if(age >= 18 && age <= 30)
    {
        ageGroups[1, ageCounters[1]] = age;
        ageCounters[1]++;
    }
    else if(age >= 31 && age <= 45)
    {
        ageGroups[2, ageCounters[2]] = age;
        ageCounters[2]++;
    }
    else if(age >= 46 && age <= 64)
    {
        ageGroups[3, ageCounters[3]] = age;
        ageCounters[3]++;
    }
    else if(age >= 65)
    {
        ageGroups[4, ageCounters[4]] = age;
        ageCounters[4]++;
    }
}

显示

for(int i = 0; i < 5; i++)
{
    for(int j = 0; j < ageCounters[i]; j++)
    {
        Console.Write(ageGroups[i, j] + " ");
    }
    Console.WriteLine();
}
于 2013-04-08T11:33:22.590 回答