C语言输入10个数去掉最大值最小值求剩下数的和

如题所述

这题考察数组的知识,代码如下:

#include<stdio.h>
int main()
{
int a[10],n,max,min,maxxiabiao,minxiabiao;
for(n=0;n<=9;n++)
{
scanf("%d",&a[n]);
}
max=min=a[0];
maxxiabiao=minxiabiao=0;
for(n=0;n<=9;n++)
{
if(a[n]>max)
{
max=a[n];
maxxiabiao=n;
}
else if(a[n]<min)
{
min=a[n];
minxiabiao=n;
}
}
printf("max=%d,xiabiao=%d\n",max,maxxiabiao);
printf("min=%d,xiabiao=%d\n",min,minxiabiao);
return 0;
}

扩展资料

同一数组中存储的数必须满足以下两个条件:

1、这些数的类型必须相同。

2、这些数在内存中必须是连续存储的。

换句话说,数组是在内存中连续存储的具有相同类型的一组数据的集合。

一维数组的定义方式如下:

类型说明符 数组名[常量表达式];

例如:int a[5];

它表示定义了一个整型数组,数组名为 a,定义的数组称为数组 a。数组名 a 除了表示该数组之外,还表示该数组的首地址。

此时数组 a 中有 5 个元素,每个元素都是 int 型变量,而且它们在内存中的地址是连续分配的。也就是说,int 型变量占 4 字节的内存空间,那么 5 个int型变量就占 20 字节的内存空间,而且它们的地址是连续分配的。









温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-21

1 输入十个数。

2 遍历数组,求的最大值,最小值,及和。

3 用和减去最大和最小值,即剩下所有数的和。

代码如下:

int func(int *a)//求数组a中的10个元素,去掉最大最小值后剩余元素的和,并返回。
{
    int i, s, min, max;
    s = min = max = a[0];
    for(i = 1; i <10;i++)
    {
        s+=a[i];//求和。
        if(min > a[i]) min = a[i];//最小值。
        if(max < a[i]) max = a[i];//最大值。
    }
    s -= min+max;//去掉最大最小两个值。
    
    return s;//返回结果
}

int main()
{
    int a[10],i;
    for(i = 0; i < 10; i ++)
        scanf("%d",a+i);//输入10个数。
    printf("%d\n",func(a));//输出结果。
    
    return 0;
}

第2个回答  2010-04-28
#include <stdio.h>

int main()
{
int a[10];
int i,min,max,total;

printf("请输入10个数据:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}

min=max=a[0];

for(i=1;i<10;i++)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
}

for(i=0;i<10;i++)
{
if(a[i]==min)
a[i]=0;
if(a[i]==max)
a[i]=0;
}

total=0;

for(i=0;i<10;i++)
{
total+=a[i];
}

printf("减去最大值和最小值的和为:%d\n",total);

return 0;
}

时间匆忙,没有调试,你可以看下思路,还有本程序在10个数中允许同时存在相同的最大值或者最小值,并且会减去所有相同的最值,比如10个数中最大值100,但有两个数都是100,那么它会减去2次100.
第3个回答  2010-04-28
#include <stdio.h>
#include <conio.h>

void main()
{
int sum=0,max=-32768,min=32767,x,i;

for(i=0;i<10;++i)
{ printf("输入第%d数\t",i+1);
scanf("%d",&x);
sum+=x;
if(max<x)
max=x;

if(min>x)
min=x;
}

printf("输入10个数去掉最大值最小值求剩下数的和:%d\n",sum-min-max);

getch();
}
第4个回答  2010-04-28
#include<stdio.h>
void main()
{
int a,sum=0,max,min,i=1;
printf("Please input 10 numbers");
scanf("%d",&a);
sum+=a;
max=min=a;
while(i<=9)
{
scanf("%d",&a);
sum+=a;
if(a>max)max=a;
else if(a<min)min=a;
i++;

}
printf("%d",sum-max-min);
}
相似回答