向C中的数组添加元素

问题描述 投票:1回答:1

我有一个任务来创建一个包含学生姓名和年级的年级书,我被困在要求我添加新学生的地方。该课程只允许75名学生的名字长度为40。

因此,我编写了一个for循环来搜索数组,并且没有错误或警告,但是程序跳过了scanf函数,要求输入名称。

这里是代码:

    #define STUDNO 75
#define NAMELENGTH 40

void super(int studNo, char name [STUDNO][NAMELENGTH],
     int studMark1[STUDNO], int studMark2[STUDNO],
     int studMark3[STUDNO], int pinNo[][3])
{
    int i;
    char newName;
    int newNo;

    printf("\n      Add New Student\n");
    printf("\nPlease enter a student number: \n");
    scanf("%d", &newNo);
    printf("Please enter the student name:\n");
    scanf("%[^\n]", &newName);
    for(i = studNo-1; i >= newNo; i--)
    {
        name[STUDNO+1][NAMELENGTH]=name[STUDNO][NAMELENGTH];
    }
    name[newNo][NAMELENGTH] = newName;
c arrays loops scanf element
1个回答
0
投票

此问题非常普遍。当最后打印到控制台的内容被视为scanf函数的有效输入时,它将被读取为输入或完全不读取任何内容,而不会让用户在代码中输入内容。我再也无法获得更多的技术性知识了,因为我不确定100%是否会导致scanf函数中发生什么,但要解决此问题,您所要做的就是将最后打印的内容包括在控制台中。您的代码如下所示。

© www.soinside.com 2019 - 2024. All rights reserved.