本关任务:练习-输入n(0<n≤100)个互不相同的整数并存在数组中,找出最大元素,并删除。

本关任务:练习-输入n(0<n≤100)个互不相同的整数并存在数组中,找出最大元素,并删除。

测试输入: 10 49 1 42 32 96 57 6 33 2 88

输入说明: 第一行为n,表示输入数组的n个整数。 第二行为数组的n个整数。

预期输出: 49 1  42 32  57 6   33 2  88

输出说明: 删除了最大值的数组所有元素。

#include<stdio.h>

int main() {
	int p = 1,sum;//p值为把第一次输入的值,赋值给max和min。
	int n = 0, x = 0;
	int max = 0, min = 0;
	printf("请输入要比较数字的个数:");
	scanf("%d", &n);
	sum = n;//sum为数字的总个数
	while (n--)
	{
		scanf("%d", &x);
		while (p)//将输入的第一个值赋给max和min。
		{
			max = x;
			min = x;
			p = 0;
		}
		if (x > max)//如果输入的值比max要大,将x赋值给max。
		{
			max = x;
		}
		if (x < min)//如果输入的值比min要大,将x赋值给min。
		{
			min = x;
		}
	}
	printf("%d个数的最大值是:%d,最小值是:%d", sum, max, min);
	return 0;
}

 

#include <stdio.h>

void printArray(int arr[],int length){

    for(int i = 0;i<length;i++){

        printf("%d ",arr[i]);

    }

    printf("\n");

}

void deleteMax(int arr[],int length){

    int pos =0;

    int temp = arr[0];

    for( int i = 0;i<length-2;i++){

        if(arr[i]<=arr[i+1])

            temp = arr[i+1];

    }

    for(int i = 0;i<length;i++){

        if(arr[i]==temp)

            pos = i;

    }

    printf("被删除的元素是:%d",temp);

    for(int j = pos;j<length-1;j++){

        arr[j] = arr[j+1];

    }

    printf("\n");

}

int main(){

    int length;

    printf("请输入数组长度:");

    scanf("%d",&length);

    int arr[length];

    for(int i = 0;i<length;i++){

        printf("请输入第%d个元素:",i+1);

        scanf("%d",&arr[i]);

    }

    printf("初始数据为:");

    printArray(arr,length);

    deleteMax(arr,length);

    printf("删除最大值后数据为:");

    printArray(arr,length-1);

    return 0;

}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

#include "stdio.h"
void main()
{
    int a[10];
    int i,max,min;
    int len;
 
    printf("请输入数组长度:");
    scanf("%d",&len);
 
    int a[len];
    for(i=0;i<len;i++)
    {
    	scanf("%d",&a[i]);	
    }
    //max,min赋初值
    max=min=a[0];
    //求最值
    for(i=1;i<len;i++)
    {
    	//求最大值
    	if(max<a[i])
    	{
    		max=a[i];	
    	}	
    	if(min>a[i])
    	{
    		min=a[i];	
    	}
    }
    printf("最大值是:%d,最小值是:%d\n",max,min);
}