c - 如何在 C 中打印两个相邻的一维数组

标签 c arrays

我正在做一项作业,涉及用 C 语言编写一个程序,该程序从 .txt 文件中读取数据并将其保存在二维数组中。然后我计算每行和每列的平均值。我已经编写了程序,它运行良好,但我希望能够让输出并排显示行平均值和列平均值,而不是仅在一行中沿着屏幕向下显示。

for (i = 0; i < nrows; i++)
{
    j = 0;
    if (j < ncols)
    {
        printf("\nAverage for row %i", i);
        fprintf(fileavg, "\nAverage for row %i", i);
        j++;
    }
    printf("\n %5.2lf\t", row_avg[i]);
    fprintf(fileavg, "\n %5.2lf\t", row_avg[i]);
}
for (j = 0; j < ncols; j++)
{
    i = 0;
    if (i < nrows)
    {
        printf("\nAverage for column %i", j);
        fprintf(fileavg, "\nAverage for column %i", j);
        i++;
    }
    printf("\n %5.2lf\t", col_avg[j]);
    fprintf(fileavg, "\n %5.2lf\t", col_avg[j]);
}

最佳答案

如果您想要并排放置两段文本,您应该打印它们,中间不要换行。这在格式化时会变得非常烦人,尤其是因为平均值不太可能是相同的位数。

你的意思是你想要订单去row_avg[i] , col_avg[i] , row_avg[i+1] , col_avg[i+1] , ETC?

如果是这样,下面是如何做到这一点。关键是递增 ij 在同一个循环中。你正在做的是初始化 j0每行 i .

j=0; 
for(i=0; i<nrows; i++)
{ 
    printf("\nAverage for row %i", i); 
    printf("\n %5.2lf", row_avg[i]); 
    fprintf(fileavg, "\nAverage for row %i", i);
    fprintf(fileavg, "\n %5.2lf", row_avg[i]);
    if (j < ncols) {
        printf("\nAverage for column %i", j);  
        printf("\n %5.2lf", col_avg[j]); 
        fprintf(fileavg, "\nAverage for column %i", j); 
        fprintf(fileavg, "\n %5.2lf", col_avg[j]); 
    }
    jj++

}

我想这就是你想要的基本结构。如果nrows == ncols ,你不必担心 j < ncols子句,您可以将其打印出来。

您可以重新排列打印语句,包括和排除 \n\t得到你喜欢的结果。另外,一般来说,最好将新行放在之后,而不是之前,但我不确定这是如何编纂的。

关于c - 如何在 C 中打印两个相邻的一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58721911/

相关文章:

c++ - 为什么结构的 sizeof 不等于每个成员的 sizeof 之和?

c++ - 使用 MinGW 编译的 DLL 无法在使用 Visual Studio 编译器编译的 C++ 代码中运行

c - 按特定字段对二维字符串数组进行排序

基于Json文件的Java非重复数组

c - 使用C找到矩阵中每一列的最大元素?

c - 关于 C 语言中 do while 循环程序的输出

ios - 遍历数组并从 JSON 文件中提取数据

java - 有没有办法将 i + 1 包含在广播类函数的 for 循环中?

javascript - 如何使数组的每个池只能分配一次

c - LMDB 的作案手法