c - 将 for 循环中的值存储到数组中?

标签 c loops for-loop

鉴于此代码:

for (int i = 0; i < 8; i++)
{
    for (int j = 0; j < 4; j++)
    {
        if (col_A[i] == row_B[j])
        {
            printf("%d %d %2.2f\n",
                   row_A[i], col_B[j], val_A[i] * val_B[j]);
            val_D[i] = val_A[i] * val_B[j];
            row_D[i] = row_A[i];
            col_D[j] = col_B[j];
        }
    }
}

输出如下:

1 1 3.00
1 2 3.00
1 1 3.00
2 1 3.00
2 2 4.00
3 1 4.00
3 2 4.00
3 1 6.00

row_D = [ 1 1 2 2 3 3 0 0 ]
col_D = [ 1 1 2 2 0 0 0 0 ]
val_D = [ 3.00 3.00 3.00 4.00 4.00 6.00 0.00 0.00 ]

将值正确存储到 val_D、row_D 和 col_D 中的正确方法是什么? Row_D 应包含三元组第一列的值,Col_D 应包含第二列,Val_D 应包含第三列。

谢谢。

最佳答案

引入一个计数器变量,并仅在有更新时递增它。

counter = 0
for (int i = 0; i < 8; i++)
{
    for (int j = 0; j < 4; j++)
    {
        if (col_A[i] == row_B[j])
        {
            printf("%d %d %2.2f\n",
                   row_A[i], col_B[j], val_A[i] * val_B[j]);
            val_D[counter] = val_A[i] * val_B[j];
            row_D[counter] = row_A[i];
            col_D[counter] = col_B[j];
            counter = counter + 1;
        }
    }
}

关于c - 将 for 循环中的值存储到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53004756/

相关文章:

c - 指针已释放但未分配

c - 在 Visual Studio 中设置 FILE_ATTRIBUTE_DEVICE

javascript - 循环进入表并从列内的不同输入获取值

C++象棋 table 华大图形

继续循环无法正常工作

c - 在 For 循环中一行输出 2 个值 - C

c - scanf() 函数中的扫描集有什么区别?

c - 在汇编中实现返回最大数和最小数之差的 C 函数

for-loop - 我如何在 Go 中遍历结构 slice ?

c# - C# 中的 Foreach 与 for 循环。在 for 循环中可以创建新对象,但在 foreach 循环中是不可能的