删除最大值
时间限制: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
可以把输入的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;
}