C语言中的打印数组

C语言中的打印数组,c,C,我试图在数组中输入一些值,但无法打印出来。下面是我的密码。请告诉我怎么了。多谢各位 #include <stdio.h> int main (void) { int i = 0; int win[99],tied[99],lost[99],streak[99],points[99]; char name[] = ""; for (i;i<=2;i++) { scanf("%s %d %d %d %d", &n

我试图在数组中输入一些值,但无法打印出来。下面是我的密码。请告诉我怎么了。多谢各位

#include <stdio.h>

int main (void)
{
    int i = 0;
    int win[99],tied[99],lost[99],streak[99],points[99];
    char name[] = "";

    for (i;i<=2;i++)
    {

        scanf("%s %d %d %d %d", &name[i] , &win[i] , &tied[i] , &lost[i] , &streak[i]);

        points[i] = win[i]*3 + tied[i];

    }
    for (i; i <= 2;i++){

        printf("%s \t%d \t%d\n", name[i], points[i] , streak[i]);
    }
    return 0;
}

第二个循环不是从0开始,而是从第一个循环结束的位置开始,即2。
将其重置为0,然后重试。

对于i;我想你应该用fgets读一整行,然后用sscanf解析。你到底做了什么?听起来你解决了第一个问题,但没有解决第二个问题。您的名称声明和/或使用错误,因为没有分配足够/正确的内存。这可能会以您观察的方式使程序崩溃。尝试替换字符名[]=;字符名为[3][99]@NewProgrammer7我并不想冒犯你,但如果你不知道这是怎么回事,那么你真的应该在继续编写代码之前回顾一下基本的C语言书籍/教程。它声明了一个二维字符数组。name[3]将只提供一个可以存储3个字节的缓冲区。名称[99]更好,因为您可以存储99个字节。但您真正需要的是3个缓冲区,每个缓冲区可以存储99个字节。因为循环读取3个名称。因此[3][99]。