scanf输完后程序结束了。

改过%d了
输入第二个课程编号后程序还是结束。

#include<stdio.h>
int k=0;//n是已经存在的学生数量 ,k是已存在的课程数量 
struct course
{
    int num; //课程编号
    char name[20]; //课程名称
    int item[1000]; //完成相应试题所获取的分值,假设每门课程最多包括1000道试题
};
struct course cou[100];
int main()
{
    void add_course();
    add_course();
    return 0;
}
void add_course()//新增信息 
{
    int judge,m=0,j,i;//judge判断输入信息是否重复,n是已经存在的学生数量 
    printf("请输入待添加课程数:\n");
    scanf("%d",&m);
    if(m>0) 
    {
        for(i=k;i<m+k;i++)
        {
            printf("请输入第%d个课程编号:",i+1);
            scanf("%d",&cou[i].num);
            for(judge=1;judge==1;)
            {    
                judge=0;
                for(j=0;j<i;j++)
                {
                    if(strcmp(cou[i].num,cou[j].num)==0) 
                    {
                        printf("该课程编号已存在!请重新输入\n");
                        judge=1;
                        break;
                    }
                    else 
                        judge=0;
                }//判断输入是否重复 
                if(judge==1){
                    printf("请输入第%d个课程编号:",i+1);
                    scanf("%d",&cou[i].num);
                }
            }
            printf("请输入课程名称:");
            scanf("%s",cou[i].name);
            printf("新增课程信息成功!\n");
        }
    }
    else 
    printf("输入错误,请重新输入!"); 
}

%s是输入字符串的,你的num是int,用%d

num是整数啊,用%d输入,不能用%s