Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 查找升序列表中降序的第一个和最后一个数字_C++_Sorting - Fatal编程技术网

C++ 查找升序列表中降序的第一个和最后一个数字

C++ 查找升序列表中降序的第一个和最后一个数字,c++,sorting,C++,Sorting,我试图找到一种方法来编写一个程序,它将接受“n”的术语,并找出它是否在上升。如果列表不是升序的,则查找违反此顺序的第一个数字并打印其索引位置i,然后查找违反此顺序的最后一个数字 例:2 3 4 2 3 4 1- 输出应该是:元素#4是递减的,元素#9是最后一个递减的 编辑:我已经解决了如何找到第一个数字,而不是最后一个数字 这是我的密码: #include <iostream> using namespace std; int main(){ int num, input

我试图找到一种方法来编写一个程序,它将接受“n”的术语,并找出它是否在上升。如果列表不是升序的,则查找违反此顺序的第一个数字并打印其索引位置i,然后查找违反此顺序的最后一个数字

例:2 3 4 2 3 4 1- 输出应该是:元素#4是递减的,元素#9是最后一个递减的

编辑:我已经解决了如何找到第一个数字,而不是最后一个数字

这是我的密码:

#include <iostream>

using namespace std;

int main(){
    int num, inputNum, i;
    int nextNum=0;
    int violator1=0, violator2=0; 
    int elementNum1=0, flag1=0;
    int elementNum2=0, flag2=0;

    cout << "Enter how much numbers you want to enter in list: ";
    cin >> num;

    for (i = 0; i < num; i++){
        cout << "Please enter a number: ";
        cin >> inputNum;

        if (inputNum >= nextNum){ 
            nextNum = inputNum;
        }
        else {
            flag1 = 1; /*The flag is set to '0' when the next number in      list has descended*/
            violator1 = inputNum;
            if (elementNum1 == 0) /*This condition will only run once because elementNum == 0 only once*/
                elementNum1 = i+1;
        }
    }

/*The flag value is determined within the loop to find the descending value*/
    if (flag == 0){ /*If the flag is UNchanged ie = 1*/
        cout << "These numbers are in ascending order." << endl;
    }
    else {
        cout << "These numbers are NOT in ascending order." << endl;
        cout << "Element Number '" << elementNum << "' was the violating number." << endl;
    }

    return 0;
}
#包括
使用名称空间std;
int main(){
int num,inputNum,i;
int nextNum=0;
int violator1=0,violator2=0;
int elementNum1=0,flag1=0;
int elementNum2=0,flag2=0;
cout>num;
对于(i=0;iinputNum;
如果(inputNum>=nextNum){
nextNum=inputNum;
}
否则{
flag1=1;/*当列表中的下一个数字下降时,该标志设置为“0”*/
violator1=输入数量;
如果(elementNum1==0)/*此条件将只运行一次,因为elementNum==0只运行一次*/
元素num1=i+1;
}
}
/*在循环中确定标志值以查找递减值*/
如果(标志==0){/*如果标志不变,即=1*/

我已经猜出这个了

要查找在某一点下降的列表中的最后一个违规者,必须初始化一个新标志,并在找到第一个违规者后将其设置为更改


在我上面的例子中,在找到第一个违规者之后,element1==0的条件应该是false。一旦该条件失败,需要有一个else语句将新标志更改为非1的内容,以及一个新的element2变量,该变量会在每次找到违规者时更改索引号。

它是否有效?是吗你和我们分享一个好的解决方案,或者你有问题吗?程序中的flag和elementNum声明在哪里?