c语言编程:输入一个五个元素的数组,输出这个数组的最大值,最小值和平均值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程:输入一个五个元素的数组,输出这个数组的最大值,最小值和平均值相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
main()

float f[5];
printf("输入五个数:");
for(int i=0;i<5;i++)
scanf("%f",&f[i]);
float min=f[0],max=f[0],sum=0;

for(i=0;i<5;i++)

if(min>f[i])
min=f[i];
if(f[i]>max)
max=f[i];
sum+=f[i];


printf("最大值为%f,最小值为%f,平均值为%f",max,min,sum/5);
参考技术A 教你一个简单的排序函数 以后写着方便
代码如下 刚写好的
#include<stdio.h>
#include<algorithm>//排序算法所在头文件
using namespace std; //命名空间

int main()

int num[5];
double ave=0;
for(int i=0;i<5;++i)

scanf("%d",&num[i]);ave+=num[i];

sort(num,num+5);//排序 从小到大 你可以输出来看看
printf("%d %d %lf\n",num[4],num[0],ave/5);
return 0;
参考技术B #define X 5/*您该这个就可以算多个数的最大最小*/
main()

int a[X],i,j,avg=0,max=0,min=0;
for(i=0;i<X;i++)
scanf("%d",a[i]);avg=avg+a[i]
for(i=0;i<X;i++)
for(j=1;j<X-1;j++)
if(a[i]>a[j])max=a[i];

for(i=0;i<X;i++)
r(j=1;j<X-1;j++)
f(a[i]<[j])min=a[i];

printf("%d\t%d\t%d",min,avg,max);
getch();

c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?

例如,a[6]=0,1,1,5,1,5,如何通过运算输出“数组共有2个数字5”和“数组共有3个数字1”?

如下:

#include <stdio.h>
#include <stdlib.h>
int main()

int n;
int *a;
int i;
scanf("%d", &n);
a = (int *)malloc(sizeof(int) * n);
for(i = 0; i < n; i ++)

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

for(i = 0; i < n - 1; i ++)

        for(int j = 0; j < n - i - 1; j ++)
        
            if(a[j] > a[j+1])
            
                int tmp = a[j];
                a[j] = a[j+1];
                a[j+1] = tmp;
            
        

int tmp = a[0];
int count = 1;
for(i = 1; i < n; i ++)

    if(tmp == a[i])
    
        count ++;
    
    else
    
        if(count > 1)
        
            printf("数组共有%d个数字%d\\n", count, a[i - 1]);
        
        tmp = a[i];
        count = 1;
    

if(count > 1)

    printf("数组共有%d个数字%d\\n", count, a[i - 1]);

free(a);
return 0;

我的思路是,先排序,再输出。

追问

a = (int *)malloc(sizeof(int) * n);
这一步是什么意思,可能我还没有学到,不懂

追答

这一步,C语言中,你如果未知数组大小,就需要在内存中创建一个数组,使用malloc申请内存,让指针指向该内存。
而由于这里申请了空间,在不用的时候需要使用free释放这一块空间。
如果你已经知道数组大小,直接使用int a[6];就行了

参考技术A

代码如下 :

#include <stdio.h>

#define MAX 100 // 数组最大数

typedef struct _Node 
int value;
int count;
Node;

typedef struct 
Node values[MAX];
int size;
List;

Node *List_Add(List *pList, int value) 

Node *pNode = &pList->values[pList->size];

pNode->value = value;
pNode->count = 1;

pList->size++;

return pNode;


Node *List_Find(List *pList, int value)

int i;

for (i = 0; i < pList->size; i++) 
if (pList->values[i].value == value) 
return &pList->values[i];



return NULL;


int main()

int numbers[MAX], n, i;
List list;

scanf("%d", &n);

for (i = 0; i < n; i++) 
scanf("%d", &numbers[i]);


list.size = 0;

for (i = 0; i < n; i++) 

Node *pNode = List_Find(&list, numbers[i]);

if (pNode != NULL) 
pNode->count++;

else 
List_Add(&list, numbers[i]);



for (i = 0; i < list.size; i++) 
if (list.values[i].count >= 2) 
printf("数组共有%d个数字%d\\n", list.values[i].count, list.values[i].value);



return 0;

运行结果:

追问

能讲一下大致的思路吗?

追答

思路是定义一个数据结构Node保存数字和数字的对应出现次数。程序首先从键盘读取统计的数字个数 n, 然后再从键盘读取 n 个数字保存到数组 numbers 中。
然后,第二个 for 循环进行统计每个数字出现的次数,保存到 List Node 中。
最后,第三个 for 循环进行输出数字出现次数count大于2统计的结果。

以上是关于c语言编程:输入一个五个元素的数组,输出这个数组的最大值,最小值和平均值的主要内容,如果未能解决你的问题,请参考以下文章

c语言利用数组指针方法 输入五个数字求出最小值 将最小值和数组第一个数字互换位置 输出数组

C语言一维数组中如何查找指定元素?

c语言中如何修改数组中的元素

C语言实现一个可变长的二维数组

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

c语言编程:输出数组中重复出现的数