我一直在为学校做一项作业,基本上我们正在创建 2 个随机 double 组,然后使用 3 种不同的算法对它们进行排序并打印结果。输出需要每行打印 5 个元素。
我有这个代码:
//print sorted arrayB
for (i = 0; i < size; i++)
{
printf ("%.1lf ", arrayB[i]);
if (i % 5 == 0 && i > 0)
{
printf ("\n");
}
}
其中所有变量都是在排序之前定义的,我的输出每次都像这样:
1.0 2.0 3.0 4.0 5.0 6.0
7.0 8.0 9.0 10.0 11.0
12.0 13.0 14.0 15.0 16.0
17.0 18.0 19.0 20.0 21.0
etc...
我不明白为什么它在顶行打印 6 个元素,而在其余行打印 5 个元素。非常感谢任何帮助!
最佳答案
只需为您的条件手写评估即可:
if (i % 5 == 0 && i > 0)
i result
0 false
1 false
2 false
3 false
4 false
5 true
6 false
现在我们可以看到它有 5 次为 false,然后为 true,这使得它打印换行符,但只有在打印数字之后!
所以你需要稍微重新安排你的逻辑,但条件是正确的。
关于c - 在 C 中每行打印双数组的 5 个元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46136910/