【发布时间】:2022-01-05 20:47:28
【问题描述】:
将用户输入的数组 (arr) 中的奇数存储在新数组 (arr1) 中,然后打印。 先运行并查看输出
#include <stdio.h>
int main()
{
int i;
int arr1[100];
int arr[5] = {2, 3, 8, 9, 11};
for (i = 0; i <= 5; i++)
{
for (int x = 1; x < 12; x++)
{
if (x == arr[i])
{
arr1[i] = arr[i];
}
x += 1;
}
}
for (i = 0; i < 5; i++)
{
printf("%d\n", arr1[i]);
}
return 0;
}
【问题讨论】:
-
欢迎来到 Stack Overflow。 “先运行并查看输出”。这不是它在这里的工作方式。您有责任清楚地解释具体错误或不正确行为并提出具体问题。请收下tour 并阅读How to Ask。
-
for (i = 0; i <= 5; i++)差一个。 -
@Rudra Patole 提供的代码没有意义。
-
建议大家自己学习做基本的调试。在调试器中运行您的程序和/或添加调试打印语句以跟踪程序执行。例如,每次点击
arr1[i] = arr[i];行时检查i和arr[i]的值,看看它是否是您需要的值。 How to debug small programs. -
您将
x增加了两次,写for (int x = 1; x < 12; x += 2)会更惯用,但使用if(arr[i] % 2)更容易测试奇数。但是,复制是有缺陷的,因为您正在跳过arr1[]的元素(它们仍未初始化)。arr1[]需要另一个索引变量。