Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在C中打印10行100个数组值_C_Arrays_Sorting_Printf - Fatal编程技术网

尝试在C中打印10行100个数组值

尝试在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,然后在开始时将其设置为零。我重命名了数组_值并更正了您的长度检查。

我有一个数组,里面有100个数字,我试图打印出来,每行只有10个整数,每个数字之间有一个制表符。它只打印前10个整数,然后停止,这是有意义的,因为我的for循环。很明显,我遗漏了它的一部分,以允许它继续通过阵列。我想试着增加一行

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");
    }
}