如果里面的整数是正数,我试图打印出 array1 乘以 10 的内容,如果它是负数,则该数字应该保留在另一个数组中。我的代码没有给我任何结果,我不太擅长编程,所以我很确定我犯了一个愚蠢的错误,但我不知道它是什么,有人可以指出问题
void
tenfold (int array2[], int size )
{
int i, array1[size];
for (i=0;i<size;i++)
{
if (array1[i]>0)
array2[i]= 10 * array1[i];
else
array2[i]= array1[i];
}
}
int main()
{
int i,array1[9]= {3, 4, 5, 6, 7, -8, -9, 1, 2};
int size = 9;
tenfold(array1, size);
return 0;
}
最佳答案
tenfold 应该将 array1 作为输入,将 array2 作为本地,否则你是正确的, 添加了十倍的 printf 以查看输出。
#include<stdio.h>
void tenfold (int array1[], int size )
{
int i, array2[size];
for (i=0;i<size;i++)
{
if (array1[i]>0)
array2[i]= 10 * array1[i];
else
array2[i]= array1[i];
}
for(i=0;i<size;i++)
printf("(orignal) array1[%d]=%d, (new) array2[%d]=%d\n", i, array1[i], i, array2[i]);
}
int main()
{
int i,array1[9]= {3, 4, 5, 6, 7, -8, -9, 1, 2};
int size = 9;
tenfold(array1, size);
return 0;
}
输出:
(orignal) array1[0]=3, (new) array2[0]=30
(orignal) array1[1]=4, (new) array2[1]=40
(orignal) array1[2]=5, (new) array2[2]=50
(orignal) array1[3]=6, (new) array2[3]=60
(orignal) array1[4]=7, (new) array2[4]=70
(orignal) array1[5]=-8, (new) array2[5]=-8
(orignal) array1[6]=-9, (new) array2[6]=-9
(orignal) array1[7]=1, (new) array2[7]=10
(orignal) array1[8]=2, (new) array2[8]=20
关于c - 将数组传递给 void 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827533/