#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;
}
想问一下,为啥我这个代码单步调试可以出结果,但是直接运行出不了结果
是这样的??