c语言数据结构不出结果


#include <stdio.h>

//从有序顺序表中删除其值在给定值s和t(要求s<t)的所有元素,
// 若s或t不合理或顺序表为空,则显示
//错误信息并退出运行
#define MaxSize 50
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;

bool Del(SqList &S, ElemType s, ElemType t)  //删除
{
    int m;  //记录s的位置
    int n;  //记录t的位置
    int k;  //计数
    for (int i = 0; i < S.length; ++i) {
        if(S.data[i] == s)
        {
            m = i;
        }
        if(S.data[i] == t)
        {
            n = i;
        }
        if(S.data[i]>=s && S.data[i]<=t)
        {
            k++;
        }
    }
    for (int i = m; i < S.length; ++i) {
        if(n+1<S.length)
        {
            S.data[i] = S.data[n+1];  //?
            n++;
        }
    }
    S.length = S.length - k;
    return true;
}

void PrintList(SqList S)
{
    for (int i = 0; i < S.length; ++i) {
        printf("%3d",S.data[i]);
    }
    printf("\n");
}

int main() {
    SqList S;
    S.data[0] = 3;
    S.data[1] = 4;
    S.data[2] = 5;
    S.data[3] = 6;
    S.data[4] = 7;
//    S.data[5] = 6;
//    S.data[6] = 7;
    S.length = 5;
    PrintList(S);
    Del(S, 3,5);
    PrintList(S);
    return 0;
}

想问一下,为啥我这个代码单步调试可以出结果,但是直接运行出不了结果

img

img

是这样的??

img