C++ 比较数组中的值并删除较大的值

C++ 比较数组中的值并删除较大的值,c++,C++,所以基本上我需要比较第一个数组值和下一个数组值,如果第一个数组值更大,那么将其从列表中删除 例如: User enters: 1 2 4 3 5 6 4 Output shpuld be : 1 2 3 5 4 Atm我不知道如何解决这个问题,而且当我试图比较最后输入的数字时,它只是比较0 void find_and_delete(int *vals, int len){ for (int i = 0; i < len; i++){ if (vals[i] > vals[

所以基本上我需要比较第一个数组值和下一个数组值,如果第一个数组值更大,那么将其从列表中删除

例如:

User enters: 1 2 4 3 5 6 4
Output shpuld be : 1 2 3 5 4
Atm我不知道如何解决这个问题,而且当我试图比较最后输入的数字时,它只是比较0

void find_and_delete(int *vals, int len){
for (int i = 0; i < len; i++){

    if (vals[i] > vals[i+1]){
        vals[i] = ' ';
    }




oid printt(int *vals, int len){
    for (int i = 0; i < len; i++){

        if (vals[i] != ' '){
            cout << vals[i] << endl;

你可以像下面这样尝试

int[] t = {1,2,4,3,5,6,4}; // create an array of integers
    for (int i=0; i<t.length-1; i++) {
        for(int j = i+1; j<t.length; j++){
            if (t[i]<t[j]){                  // if j is bigger than i
                cout << t[i];
            }
        }
    }

对于可调整大小的数组,可以将std::vector与include一起使用

for循环的上界是len-1而不是len

试试这个

void find_and_delete(int *vals,int len)
{
   if(len>0)
   {
   for (int i = 0; i < len-1; i++)
   {

         if (vals[i] > vals[i+1]){
            vals[i] = ' ';
         }

   }
   }

}


void printt(int *vals, int len){
    for (int i = 0; i < len; i++){

        if (vals[i] != ' '){
           cout << vals[i] << endl;
        }
    }
}

不考虑最后一个元素。

你在4之前输出5?这不也应该删除吗?您的代码片段非常不完整。显示你的.dave-不,它应该从数组中检查。例如:352345。它应该检查3是否大于5,如果不是,则打印出来,如果5大于2,则删除。。输出应该是:323 45:这不是C++:INT[]不是在C++中声明数组的方式,也没有长度属性。只针对记录int t[]{1,2,4/3,5,6,4};不过也可以。不过这里的算法也不是特别好。@jhbh是真的,但他也使用了t.length,所以看起来不像是简单的打字错误。@Ionut我完全同意。我只是展示了一个C++的方式来做,以防有人不知道为什么它是错误的。为什么你假设32不是输入数组中的有效数字?它可能是值得指出为什么你已经写了循环,而不是仅仅写int=0;i0{for int i=0;iYou是对的@MartinBonner。我以前没有注意到。编辑答案。
void find_and_delete(int *vals,int len)
{
   if(len>0)
   {
   for (int i = 0; i < len-1; i++)
   {

         if (vals[i] > vals[i+1]){
            vals[i] = ' ';
         }

   }
   }

}


void printt(int *vals, int len){
    for (int i = 0; i < len; i++){

        if (vals[i] != ' '){
           cout << vals[i] << endl;
        }
    }
}