注册 登录
编程论坛 C语言论坛

可以运行,但不能进行输入。是哪里错了吗?(新手)

makoki 发布于 2020-02-29 15:30, 2860 次点击
# include <stdio.h>
# include <malloc.h>

struct Students
{
   int age;
   char name[20];
   float score;
};

int main()
{
    int i;
    int quantitylen;
    struct Students * pArr;
   
    printf("请输入想要登记的学生人数:\n");
    printf("quantitylen = ");
    scanf("%d\n", &quantitylen);
   
    pArr = (struct Students * )malloc(quantitylen * sizeof(struct Students));
   
    for (i = 0; i < quantitylen; ++i)
    {
        printf ("请输第%d个人学生信息\n", i+1);        
        printf ("age = ");
        scanf ("%d", &pArr[i].age);
        
        printf ("name = ");
        scanf ("%s", pArr[i].name);
        
        printf ("score = ");
        scanf ("%f", &pArr[i].score);

    }
   
    for (i = 0; i < quantitylen; ++i)
    {
        printf ("第%d个入学生信息是:\n", i+1);        
        printf ("age = ");
        printf ("age = %d", pArr[i].age);
        
        printf ("name = ");
        printf ("name = %s", pArr[i].name);
        
        printf ("score = ");
        printf ("score = %f", pArr[i].score);
    }   
    return 0;
}
6 回复
#2
纯蓝之刃2020-02-29 17:29
scanf("%d", &quantitylen);
里面不要使用\n。
#3
chxchxkkk2020-03-01 00:26
楼上正解,去掉后可正常运行
#4
makoki2020-03-01 09:57
回复 2楼 纯蓝之刃
谢谢!
#5
Divine2020-03-01 22:18
输入时不用加\n
scanf("%d", &quantitylen);即可
#6
hbccc2020-03-02 19:14
scanf("%d"),不要\n
#7
自学的数学2020-03-03 11:32
如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。
1