WANGYUZHEN王玉镇 2021-05-30 19:41 采纳率: 50%
浏览 32

删除最大值——一个初一学生的问题

删除最大值

时间限制:1.000s

 

内存限制:128MB

 

题目描述

在一个数组中,请将这个数组的最大值删除(可能有多个最大值哦),数组中的数不可能全部相等,问删除后第x个位置的元素的值。

输入格式

有三行 第一行有一个整数n ( 5 <= n <= 100 ) 第二行有n个整数! 第三行有一个整数x(1<=x<n)

输出格式

一个整数,即删除最大值后第x个位置的元素的值。

样例输入content_copy

5
1 5 2 4 3
2

样例输出content_copy

2

题目链接:删除最大值 - 青岛图灵编程教育OJ 

  • 写回答

1条回答 默认 最新

  • a5156520 2023-03-07 14:18
    关注

    可以把输入的n个数存入数组,然后计算出数组最大值,接着把除数组最大值外的其他元素的值存入一个备份数组,最后根据x的值来取出备份数组相应位置的元素值即可。

    代码如下:

    #include <stdio.h>
    
    int main(void){
        
        int n;
        int arr[100],temp[100];
        int x;
        int i;
        int max;
        
        scanf("%d",&n); // 获取n的值 
        // 获取n 个数存入数组arr 
        for(i=0;i<n;i++){
            scanf("%d",&arr[i]);
            
            // 计算数组的最大值 
            if(i==0){
                max=arr[i];
            }else{
                
                if(max<arr[i]){
                    max=arr[i];
                }    
                
            }
        } 
        scanf("%d",&x);  // 获取x的值 
        
        int j=0;
        // 把去除最大值后的其他数组元素存储到备份数组 
        for(i=0;i<n;i++){
            
            if(arr[i]!=max){
                temp[j]=arr[i];
                j++;
            }
        } 
        
        // 打印结果 
        if(x>j||x<=0){
            printf("x的值超出了数组范围!\n");
            return 0;
        }else{
            printf("%d",temp[x-1]);
        }
        
        return 0;
        
    } 
    
    

    img

    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100