鉴于此代码:
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/