这题不用函数怎么做?

要怎么找到最大值及最小值且找到他们的下标删除他们。在进行接下来的运算?
求代码

#include<stdio.h>
int main(){
    int list[10] = { 1,3,5,4,2,0,8,9,6,7 };     //以十个空间的数组为例
    int length = 10;
    int max = list[0];        //从第一个数开始找最大值
    int max_index = 0;  //记录最大值的下标
    for (int i = 0; i < length; i++) {
        if (list[i] > max) {   //与最大值比较,大于就更新max
            max = list[i];
            max_index = i;
        }
    }
    //这不是链表,无法直接删除这个位置,只能把它后面的数据往前移动进行覆盖,数组长度减1
    for (int i = max_index; i < length - 1; i++)
        list[i] = list[i + 1];
    length--;
    for (int i = 0; i < length; i++)
        printf("%d ", list[i]);
    return 0;
}

一个循环就可以,只要遍历1次,算法复杂度O(N)。

 int _tmain(int argc, _TCHAR* argv[])
{
    int N = 7;
    int nums[] = {3,2,42,6,35,76,11};
    int max = nums[N-1] > nums[N-2] ? nums[N-1] : nums[N-2];
    int min = nums[N-1] < nums[N-2] ? nums[N-1] : nums[N-2];
    nums[N - 1] = nums[N - 2] = 0;
    for (int i = 0; i < N - 2; i++)
    {
        int t;
        if (nums[i] > max) {t = max; max = nums[i]; nums[i] = t;}
        if (nums[i] < min) {t = min; min = nums[i]; nums[i] = t;}
    }
    for (int i = 0; i < N - 2; i++) printf("%d ", nums[i]);
    return 0;
}

图片说明

如果问题得到解决,麻烦点下我回答右边的采纳