尝试在C中打印10行100个数组值
我有一个数组,里面有100个数字,我试图打印出来,每行只有10个整数,每个数字之间有一个制表符。它只打印前10个整数,然后停止,这是有意义的,因为我的for循环。很明显,我遗漏了它的一部分,以允许它继续通过阵列。我想试着增加一行尝试在C中打印10行100个数组值,c,arrays,sorting,printf,C,Arrays,Sorting,Printf,我有一个数组,里面有100个数字,我试图打印出来,每行只有10个整数,每个数字之间有一个制表符。它只打印前10个整数,然后停止,这是有意义的,因为我的for循环。很明显,我遗漏了它的一部分,以允许它继续通过阵列。我想试着增加一行 for(int line_num = 0; line_num < 10; line_num+=10) 我知道了!将答案张贴在下面。为清晰起见,请将\u数组的长度\u重命名为\u数组中的偏移量\u,然后在开始时将其设置为零。我重命名了数组_值并更正了您的长度检查。
for(int line_num = 0; line_num < 10; line_num+=10)
我知道了!将答案张贴在下面。为清晰起见,请将\u数组的长度\u重命名为\u数组中的偏移量\u,然后在开始时将其设置为零。我重命名了数组_值并更正了您的长度检查。我还向内部循环添加了一个检查,以防数组长度发生变化,并且不除以10。
比如:
int i;
#define ARRAY_LENGTH 100
int offset_in_array = 0;
while (offset_in_array < ARRAY_LENGTH){
for(i = 0; i < 10 && offset_in_array < ARRAY_LENGTH; ++i){
printf("%d ", A[offset_in_array]);
++offset_in_array;
}
}
inti;
#定义数组长度为100
_数组中的int offset_=0;
while(数组中的偏移量<数组长度){
对于(i=0;i<10&&offset_在_数组
我还没有试过运行这个,但应该更接近。只要每隔十个数字打印一行新行就可以了。。。如果不是第十个数字,那么打印一个标签
for (size_t i = 0; i < array_length; ++i) {
printf("%d%c", A[i], i % 10 != 9 ? '\t' : '\n');
}
for(大小i=0;i
实时代码可在上找到。这可能是您正在寻找的:
/* test.c */
#include <stdio.h>
#define ELEMENTS 100
int main (void)
{
int array [ELEMENTS];
for ( int i = 0; i < ELEMENTS; ++i )
array [i] = i;
for ( int i = 0; i < ELEMENTS; ++i ) {
printf ("%i", array[i]);
if ( (i + 1) % 10 != 0 )
printf ("\t");
else
printf ("\n");
}
return 0;
}
/*test.c*/
#包括
#定义元素100
内部主(空)
{
int数组[元素];
对于(int i=0;i
编辑:由于制表符可以延伸到行尾的下一行,因此必须小心制表符和新行字符。只需将数组的
length\u值更改为0
,并在for
循环后打印\n
int array_value;
int length_of_array = 0;
while (length_of_array <= 100) {
for(array_value = 0; array_value < 10; ++array_value){
printf("%d ", A[array_value]);
++length_of_array;
}
printf("\n");
}
int数组_值;
_数组的int length_=0;
而(_数组的长度_您可以使用以下解决方案在C中打印10行100个数组值:
for (int i = 0; i < 100; ++i){
printf("%i\t", A[i]);
if ((i+1)%10 == 0){
printf("\n");
}
}
for(int i=0;i<100;++i){
printf(“%i\t”,A[i]);
如果((i+1)%10==0){
printf(“\n”);
}
}
谢谢你的努力!它并不是每行只打印10个整数,它的输出与我的原始代码相同,但我非常感谢你的帮助!这帮了我很多忙!!非常感谢!很好的解决方案。我对上面的答案做了一个小改动,因为这可能会影响每行末尾数字列表的显示方式。只有代码的答案信息量不大。最好评论或描述一下此代码是如何解决此问题的。'\t'
在'\n'
之前的\t'
会引起意外和错误。我不建议使用此解决方案,因为它会在“每行10个整数之外添加制表符,每个数字之间添加制表符”@chux:奇怪的是,在你发表评论之前,代码已经被编辑过了,包括标签和新行字符。
int array_value;
int length_of_array = 0;
while (length_of_array <= 100) {
for(array_value = 0; array_value < 10; ++array_value){
printf("%d ", A[array_value]);
++length_of_array;
}
printf("\n");
}
for (int i = 0; i < 100; ++i){
printf("%i\t", A[i]);
if ((i+1)%10 == 0){
printf("\n");
}
}