有人可以帮我为什么我的程序输出随机数吗?

时间:2019-01-30 14:00:16

标签: c

我正在学习用C语言编写代码,我需要创建一个程序,该程序首先将数组中的数字按偶数排序,然后按不均匀数排序。数字不必从小到大排序。第一个输入的数字应该是数组的大小。我设法弄清楚了,但始终缺少一个数字,并提供了一个随机数。我想念什么吗?

int a[101], a2[101], i, j, n, k = 0;
scanf ("%d", &n);

for (i = 0; i < n; i++)
scanf ("%d", &a[i]);

for (i = 0; i < n; i++)
{
    if (a[i]%2 == 0)
        {
        if (a[i] == 0)
            {
                a2[k] = a[i];
                k++;
                continue;
            }
        a2[k] = a[i];
        k++;
        }
}


for (i = 0; i < n; i++)
{
    if (a[i]%2 != 0)
    {
        a2[k] = a[i];
        k++;
    }
}


for (i = 0; i < n; i++)
    printf ("%d ", a2[i]);


return 0;

我输入以下数字:

6

1 3 2 5 8 10

我应该得到: 2 8 10 1 3 5

我得到的是: 2 8 10 1 3 508

我也尝试了其他组合,问题仍然存在,但数字不同。

1 个答案:

答案 0 :(得分:1)

几次检查您的代码,使其编写得很好,并且效果也很好。 5 之后的多余的 08 可能由其他内容打印。在打印 ara2 的所有元素之后,可以使用换行符来确保 08 是从 ara2 的任何元素中打印出来的。像这样:

for (i = 0; i < n; i++)
    printf ("%d ", a2[i]);
printf("\n");

还有一件事。无需在代码中添加波纹管部分。即使您不添加此代码,其代码也一样。

    if (a[i] == 0)
        {
            a2[k] = a[i];
            k++;
            continue;
        }

快乐编码。