c - for循环中两个缓冲区的总和

标签 c loops for-loop while-loop buffer

我有两个不同大小的缓冲区,我需要得到第三个缓冲区,它等于两个缓冲区的总和。

我就是这样做的(我知道这是错误的)

    for (i = 0; i < num; i += c){
    for (i2 = 0; i2 < num2; i2 += c2){

        printf("%d ",(buf[i]+buf2[i2])/2);

        }
}

我不想完成 i2 循环然后将 i 迭代 1,我想让两个 for 循环同时工作但我不知道该怎么做,因为 num2>num 所以如果我使用像这样单例:

 `for (i = 0, i2=0; i < num, i2 < num2; i+=c, i2+=c)`

我认为这行不通。

我想过使用上面写的代码并添加类似的东西:当 i = num 时让 buf[i] 变得等于 0。

提前致谢。

最佳答案

您可以迭代直到到达较小数组的末尾,然后继续前进以获得较大数组:

int i;
int lower = num > num2 ? num2 : num;
int upper = num > num2 ? num : num2;
int buf3[upper];

for (i = 0; i < lower; ++i) {
    buf3[i] = buf[i] + buf2[i];
}

for (i; i < upper; ++i) {
    if (upper == num2) {
        buf3[i] = buf2[i];
    }
    else {
        buf3[i] = buf[i];
    }
}

关于c - for循环中两个缓冲区的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38265057/

相关文章:

python - 直接从 CPU 读取 TEMPERATURE_TARGET

c++ - 计数排序中的循环解释

linux - 用于循环更改文件中变量的命令行

c - i ["string"] 如何用作条件语句?

c - 强制 C 中的特定结构大小

c - 通过字符串的结构引用

c - 如何声明指向不同数据类型的指针,但它们将占用相同的内存空间

Javascript - 数组循环问题

C - 使用指针创建更高效​​的循环来遍历字母表

r - 如何在 R 中创建 for 循环来进行这种特殊的计算