gpt4 book ai didi

c - 如何在 C 中将 'nothing' 添加到 int 数组中

转载 作者:行者123 更新时间:2023-12-01 12:06:19 25 4
gpt4 key购买 nike

我的任务是将整数数组排序为偶数数组和奇数数组。然后我必须显示哪些数字被放置在其中。但是,在我的代码中并不是数组的所有位置都被占用,所以最后当我想显示数组奇数和偶数包含的内容时,我会收到随机数。我不想在随机数的位置添加任何东西。

我做了以下事情:

int main()
{
int evens[10], whole[10], odds[10], i;

printf("Enter 10 integer(/whole) numbers\n");
for (i = 0; i < 10; i++)
{
scanf("%d", &whole[i]);
if (whole[i] % 2 == 0)
{
evens[i] = whole[i];
else odds[i] = whole[i];
}
}

printf("Your even numbers are the following:\n");
for (i = 0; i < 10; i++)
{
printf("%d\n", evens[i]);
}

printf("Your odd numbers are the following:\n");
for (i = 0; i < 10; i++)
{
printf("%d\n", odds[i]);
}

return 0;
}

然后我得到了输入从 1 到 10 的数字的输出:

  Your even numbers are the following:
-1832565259
2
1985901418
4
4200864
6
4200958
8
74
10

Your odd numbers are the following:
1
4200864
3
6356652
5
1986281400
7
1985964450
9
1985901427

那么,如果中间没有像 1985964450 这样的随机数字,我如何获得奇数/偶数数组?是否有命令可以不添加任何内容?

最佳答案

您应该有赔率计数器和偶数计数器。

int oddcount = 0;
int evencount = 0;

当您确定一个数字是偶数时,您可以使用此计数器来了解它应该在数组中的哪个位置。例如:

if (whole[i] % 2 == 0) {
evens[evencount] = whole[i];
evencount++;
}

请注意,evencount 不仅会告诉您偶数的个数,而且由于数组索引从零开始,它还会告诉您下一个偶数的位置。

然后您在末尾修改您的 for 循环以使用键入的偶数和奇数的实际数量。您甚至可以检查零并打印特定消息,例如 No even numbers supplied

此外,除非特别要求您将输入数字保存在一个数组中,否则您不需要whole。你可以这样做:

int input;
for (i=0; i<10; i++)
{
scanf("%d", &input);
if (input %2 == 0)
/* ... */
else
/* ... */
}

最后一点,您应该缩进您的代码。缩进只是增加代码前的空格数(就像我在上面的 if 中所做的那样)。缩进代码非常重要,因为它可以使代码结构清晰。如需对此进行更全面的讨论,请阅读此处:Importance of code indentation .

关于c - 如何在 C 中将 'nothing' 添加到 int 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41524819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com