如题所述
#include <stdio.h>
#include <stdlib.h>#define MAXlen 5void select_sort(int *x, int n) { //éæ©æåº
int i, j, min;
int t;
for (i = 0; i < n - 1; i++) { // è¦éæ©ç次æ°ï¼0~n-2å ±n-1次
min = i; // å设å½åä¸æ 为içæ°æå°ï¼æ¯è¾ååè°æ´
for (j = i + 1; j < n; j++) { //循ç¯æ¾åºæå°çæ°çä¸æ æ¯åªä¸ª
if (*(x + j) > *(x + min)) {
min = j; // å¦æåé¢çæ°æ¯åé¢ç大ï¼åè®°ä¸å®çä¸æ
}
}
if (min != i) { // å¦æminå¨å¾ªç¯ä¸æ¹åäºï¼å°±éè¦äº¤æ¢æ°æ®
t = *(x + i);
*(x + i) = *(x + min);
*(x + min) = t;
}
}
}int main() {
int i,a[MAXlen],sum = 0;
for(i = 0 ; i < MAXlen ; i++) {
printf("请è¾å ¥ç¬¬%dä¸ªæ° : ",i + 1);
scanf("%d",&a[i]);
sum = sum + a[i];
}
printf("\n");
select_sort(a,MAXlen);
printf("\næåºå:\n");
for(i = 0 ; i < MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",a[i]);
}
printf("\n\nå»ææ大æ°åçå¹³åå¼ä¸º:%.2f",(float)(sum - a[0])/(MAXlen - 1));
printf("\n\n");
return 0;
}
#include <stdlib.h>#define MAXlen 5void select_sort(int *x, int n) { //éæ©æåº
int i, j, min;
int t;
for (i = 0; i < n - 1; i++) { // è¦éæ©ç次æ°ï¼0~n-2å ±n-1次
min = i; // å设å½åä¸æ 为içæ°æå°ï¼æ¯è¾ååè°æ´
for (j = i + 1; j < n; j++) { //循ç¯æ¾åºæå°çæ°çä¸æ æ¯åªä¸ª
if (*(x + j) > *(x + min)) {
min = j; // å¦æåé¢çæ°æ¯åé¢ç大ï¼åè®°ä¸å®çä¸æ
}
}
if (min != i) { // å¦æminå¨å¾ªç¯ä¸æ¹åäºï¼å°±éè¦äº¤æ¢æ°æ®
t = *(x + i);
*(x + i) = *(x + min);
*(x + min) = t;
}
}
}int main() {
int i,a[MAXlen],sum = 0;
for(i = 0 ; i < MAXlen ; i++) {
printf("请è¾å ¥ç¬¬%dä¸ªæ° : ",i + 1);
scanf("%d",&a[i]);
sum = sum + a[i];
}
printf("\n");
select_sort(a,MAXlen);
printf("\næåºå:\n");
for(i = 0 ; i < MAXlen ; i++) {
if(i % 10 == 0) printf("%\n");
printf("%5d",a[i]);
}
printf("\n\nå»ææ大æ°åçå¹³åå¼ä¸º:%.2f",(float)(sum - a[0])/(MAXlen - 1));
printf("\n\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-02
#include <stdio.h>
#define CNT 5
void Sort(double arr[])
{
int i,j;
double tmp;
for (i=0; i<CNT; i++)
for (j=i+1; j<CNT; j++)
if (arr[i]>arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
void main()
{
double inArr[5] = {0.0}, aveValue = 0.0;
int i;
printf("请输入%d个数字: \n", (int)CNT);
for (i=0; i<CNT; i++)
scanf("%lf", &inArr[i]);
Sort(inArr);
printf("去掉一个最高一个最低后的平均值为: %.2lf\n", (inArr[1]+inArr[2]+inArr[3])/3);
}
//测试结果:
#define CNT 5
void Sort(double arr[])
{
int i,j;
double tmp;
for (i=0; i<CNT; i++)
for (j=i+1; j<CNT; j++)
if (arr[i]>arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
void main()
{
double inArr[5] = {0.0}, aveValue = 0.0;
int i;
printf("请输入%d个数字: \n", (int)CNT);
for (i=0; i<CNT; i++)
scanf("%lf", &inArr[i]);
Sort(inArr);
printf("去掉一个最高一个最低后的平均值为: %.2lf\n", (inArr[1]+inArr[2]+inArr[3])/3);
}
//测试结果:
第2个回答 2013-12-02
#include "stdio.h"
main()
{
int a[5];
int i,j,num,max,t; int sum=0; float avg=0;
printf("请输入五个数:");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
{
max=a[i];
num=i;
for(j=i+1;j<5;j++)
{
if(max<a[j])
{
max=a[j];
num=j; }
}
t=a[num];
a[num]=a[i];
a[i]=t;
}
for(i=1;i<4;i++)
{
sum=sum+a[i]; } avg=sum/3; printf("去掉一个最小值:%d\n",a[0]);
printf("去掉一个最大值:%d\n",a[4]);
printf("最终的平均值为:%2f\n",avg);
}
main()
{
int a[5];
int i,j,num,max,t; int sum=0; float avg=0;
printf("请输入五个数:");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
{
max=a[i];
num=i;
for(j=i+1;j<5;j++)
{
if(max<a[j])
{
max=a[j];
num=j; }
}
t=a[num];
a[num]=a[i];
a[i]=t;
}
for(i=1;i<4;i++)
{
sum=sum+a[i]; } avg=sum/3; printf("去掉一个最小值:%d\n",a[0]);
printf("去掉一个最大值:%d\n",a[4]);
printf("最终的平均值为:%2f\n",avg);
}