为什么else后面不执行直接跳过

void deletelist(sqlist *l)
{
    int j,z,s=0;
    stu m;
    char n[10],y;
    printf("请输入要删除的学生姓名:");
    scanf("%s",n);
    for(z=0;z<l->length;z++)
    {
        m=l->data[z];
        if(strcmp(m.name,n)==0)
        {
            s=1;
            break;
        }
    }
    if(s==0)
    {
        printf("未找到该学生\n",n);
        system("pause");
        system("cls");
        return;
    }
    else    
    {
        printf("姓名为(%s)的学生信息为:\n学号:%s\t性别:%s\t成绩:%d\n",n,m.num,m.sex,m.score);
        printf("确认删除?(Y/N)\n");
        scanf(" %c",&y);
        if(y=='y'||y=='Y')
        {
            for(j=z;j<l->length;j++)
                l->data[j]=l->data[j+1];
            l->length--;
            printf("删除成功\n");
            return;
        }
        else
        {
            printf("删除取消\n");
            return;
        }
    }
}

你说的是哪一个else

这个函数没什么问题,能正常运行,else后面不执行是因为没找到相关的记录?

void deletelist(sqlist* l)
{
    int j, z, s = 0;
    stu m;
    char n[10], y;
    printf("请输入要删除的学生姓名:");
    scanf("%s", n);
    for (z = 0; z < l->length; z++)
    {
        m = l->data[z];
        if (strcmp(m.name, n) == 0)
        {
            s = 1;
            break;
        }
    }
    if (s == 0)
    {
        printf("未找到该学生\n", n);
        system("pause");
        system("cls");
        return;
    }
    else
    {
        printf("姓名为(%s)的学生信息为:\n学号:%s\t性别:%s\t成绩:%d\n", m.name, m.num, m.sex, m.score);
        printf("确认删除?(Y/N)\n");
        scanf(" %c", &y);
        if (y == 'y' || y == 'Y')
        {
            for (j = z; j < l->length; j++)
                l->data[j] = l->data[j + 1];
            l->length--;
            printf("删除成功\n");
            return;
        }
        else
        {
            printf("删除取消\n");
            return;
        }
    }
}