如何用用户输入的结构填充动态数组的元素?

时间:2016-11-01 16:01:20

标签: c arrays struct

我的程序根据用户输入的大小动态分配数组。 (如果用户输入为' 5'那么我的pixmap = QPixmap.fromImage(qimage).copy() 数组的大小为5)。此数组的每个元素都应包含一个结构。(该结构包含一个名称和10个不同测试的点)。最后我想输出这样的结构:

prog

我的问题是我不知道如何实现这一目标。我唯一能做到的就是这个,下面提到的程序(我输入的最后一个数据改变了一切):

a
1 2 3 4 5 6 7 8 9 10
b 
4 5 3 2 3 7 8 9 11 12

我花了好几个小时,我觉得我完全迷失了。

a
1 2 3 4 5 .... 10
b
1 2 3 4 5 .....10

1 个答案:

答案 0 :(得分:1)

问题在于,在嵌套的for循环中,使用j来索引prog而不是i,并且必须将指针传递给scanf中的int }:

for(i=0;i<N;i++){
    printf("Please enter the name of the student: \n");
    scanf("%s",(prog+i)->name);
    for(j=0,j<10,j++){
        printf("Please enter point %d: \n", j+1);
        scanf("%d", &((prog+i)->partpoints+j)); // no more PROBLEM now
}

注意:您可能需要在scanf格式字符串中添加一个空格,以便跳过空格和cr / lf:" %d"(我不是扫描专家)。