c - 将数组传递给 void 函数

标签 c arrays

如果里面的整数是正数,我试图打印出 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/

相关文章:

java - Java中有没有类似C的struct之类的东西?

c - 在 C 中使用指针和 malloc 的两个暗淡数组中的运行时错误

javascript - 检查两个数组是否相等

java - 在数组中找到两个最相似的值(Java)

c - 如何解决我的小写函数遇到的这个问题

c - 计算任何数字的 log(base 2) 的最佳方法是什么?

c - 读取未知大小的文件内容

java - 程序仅输出数组列表中的最后一个元素 - Java

c - C 中带数组的指针

python - 计算每个numpy数组列中的唯一值