當前位置:首頁 » 編程語言 » c語言最大值怎麼去除
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言最大值怎麼去除

發布時間: 2023-03-02 11:11:17

A. 大神,在C語言中怎麼在數組中刪除最大和最小的元素

先找到最大元素和最小元素下標。 然後把後續的依次前移即可。

比如

intdel_max_min(int*a,intn)
{
intmaxi,mini,i,j;
maxi=mini=0;
for(i=1;i<n;i++)
if(a[maxi]<a[i])maxi=i;
elseif(a[mini]>a[i])mini=i;
for(i=j=0;i<n;i++)
if(i!=maxi&&i!=mini)
a[j++]=a[i];
returnj;
}

返回的是刪除後 a中元素個數。

B. C語言問題,任意輸入十個數,去掉其中最大值和最小值,求剩餘數的平均值,求教~

方法實現有多種:

一、最直觀的方式:

1、將輸入的十個數,存到數組中;

2、遍歷數組,找到最大值和最小值;

3、從數組中將最大值和最小值移除;

4、將剩餘的8個數值累加,並將和值除以8,得到平均值;

5、輸出結果。

二、優化方式:

分析原始演算法,需要循環多次,包括輸入,查找最值,移除,累加等。針對此,可以進行優化。

1、查找最大值和最小值可以通過一個循環完成;

2、由於只是要計算最終的平均值,所以可以不從數組移除,而是累加10個數的和值,再減去兩個最值;

3、輸入時可以不保存數組,而是輸入一個處理一個,降低空間開銷;

4、輸入時可以同時執行累加及查找最值操作。

三、經過優化,代碼可以書寫如下:

#include<stdio.h>
intmain()
{
floataver=0;
inti,n,max,min;
scanf("%d",&max);
aver=min=max;//輸入第一個數,當做初始的最大最小值。此時和值也為該值。
for(i=1;i<10;++i)//循環9次。
{
scanf("%d",&n);//輸入剩餘9個數。
aver+=n;//累加。
if(max<n)max=n;//查找最大值。
elseif(min>n)min=n;//查找最小值。
}
aver-=min+max;//在和值中減去兩個最值。
aver/=8;//計算平均值。
printf("%f ",aver);//輸出結果。
return0;
}

C. C語言3個數值 去最大值

因為有數值相等的情況,例如 a=5, b=5, c=2, 按 你書寫的條件
if(a > b && a > c) // 得假
printf("最大值為:%d\n", a);
else if(b > a && b > c) // 得假
你得到 c 最大,這就錯了。
其實: if(a>b&&b>c||a>c&&c>b)printf("%d",a); 也不對。
如果是: if(a >= b && a >= c) printf("最大值為:%d\n", a); 就對了