跪求大神帮我的程序改错QAQ 编译连接都没错就是结果不对 目的是为了删去数组中指定数值范围的元素

#include <iostream>
using namespace std;
int main()
{
int n=10,j,s,t,a[10];

for(int i=0;i<n;i++)
cin>>a[i];
cout<<"Please enter the range:";
cin>>s>>t;

for(i=0;i<n;i++)
{if (a[i]<t && a[i]>s)
for(j=i;j<n-1;j++)
a[j]=a[j+1];
n--;
}

for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;}<!--

假如if没有执行,就是说没有删除元素,那么还是n--了,出现逻辑错误。
所以n--要写在if要用一个花括号把for语句和n--包起来追问

 运行结果还是不对QAQ给你看截图

追答

嗯,还有一点问题。删除元素之后,i还要重置为0,继续从第一个元素开始检查。在n--下面添加一句i=0

温馨提示:答案为网友推荐,仅供参考