C语言数组输出内容有误

问题遇到的现象和发生背景

输入内容后,学号无法正常输出,名字没有问题

用代码块功能插入代码
#include
#include
#define MAX 50 
 void AddInformation(int stu_num[MAX],char stu_name[][20])
 {
     int i,num,n;
     int j;
     printf("请输入添加的人数:\n");
     scanf("%d",&n);
     for(i=0;iprintf("请输入添加学生的学号:\n");
        scanf("%d",&num);
       for(j=0;jif(num == stu_num[j])
           {
               printf("此学生已经被录入");
               break; 
        }
        else
        {
            printf("请输入添加学生的学生姓名:\n");
            scanf("%s",stu_name[j]);
            break; 
        } 
       }
    }    
     int p;
     for(p=0;p<=num;p++)
     {
         printf("学生学号:%d\n",stu_num[p]);
        printf("学生姓名:%s",stu_name[p]); 
        break; 
     } 
     return; 
  } 
 void DeleteInformation()
 {
     printf("这是删除功能"); 
  } 
 void SearchInformation()
 {
     printf("这是查找功能"); 
  } 
 void ModiftyInformation()
 {
     printf("这是修改系统");
  } 
int main()
{
    int choice;
    char stu_name[MAX][20];
    int stu_num[MAX]={0}; 
    Sleep(1000);
    printf("\n\n\n                  **************学生管理系统*************\n\n");
    Sleep(500);
    printf("                     1. 添加学生宿管信息\n\n"); 
    Sleep(500);
    printf("                     2. 删除学生宿管信息\n\n"); 
    Sleep(500);
    printf("                     3. 查找学生宿管信息\n\n"); 
    Sleep(200);
    printf("                     4. 修改学生宿管信息\n\n"); 
    Sleep(200);
    printf("                     0.退出系统\n\n"); 
    Sleep(200);
    printf("                     请选择(0-4):"); 
    Sleep(200);
    scanf("%d",&choice); 
    Sleep(200);
    switch(choice)
    {
    case 0: printf("结束");break; 
    case 1: AddInformation(stu_num,stu_name);break;
    case 2: DeleteInformation();break;
    case 3: SearchInformation();break;
    case 4: ModiftyInformation();break; 
    }
    return 0; 
 } 

运行结果及报错内容

img

stu_num数组不仅是作为已录入的学号数组进行查重,还要把未录入的学号装填进里面,注意数据更新

输入学号查重后并没有把num赋值给数组元素