所以基本上我需要将第一个数组值与下一个数组值进行比较,如果第一个数组值较大,则将其从列表中删除。
例如:
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;
答案 0 :(得分:1)
试试这个
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;
}
}
}
它不会考虑最后一个元素。
答案 1 :(得分:0)
对于可调整大小的数组,您可以将 std :: vector 与#include <vector>
for循环上限是len - 1
而不是len
std::vector<int> results;
for (int i = 0; i < len - 1; i++){
if (vals[i] > vals[i+1]){
}
else{
results.push_back(vals[i]);
}
}
答案 2 :(得分:-2)
您可以尝试如下,
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];
}
}
}