c语言之数组的封装

#include<stdio.h>
#include<stdlib.h>

void tips()
{
    
    
	printf("********编译成功*********\n");
}

void qiuz(int arr[])//形参虽然写的是一个数组的样子,中括号数组的大小是无效的!!! 
{
    
    	//这里不管括号写多少,都不能代表形参数组有多大!它仅仅代表一个地址而已,Windows用4个字节表示,Linux64位用八个字节表示。 
	printf("arr数组占用内存为:%d\n",sizeof(arr));
	printf("arr数组中元素单个内存为:%d\n",sizeof(arr[0]));
	printf("*****************************************************************\n");
}


int qiuhe(int arr[],int a)
{
    
    
	int i;
	int sum=0;
	for(i=0;i<a;i++)
	{
    
    
		sum+=arr[i];
	}
	return sum;
//	printf("成绩总共为:%d\n",sum);
//	printf("平均成绩为:%f\n",(float)sum/a);
}
int qiumax(int arr[],int a)
{
    
    
	int i;
	int max=arr[0];

	for(i=0;i<a;i++)
	{
    
    
		if(arr[i]>max)
		{
    
    
			max=arr[i];
		}
	}
	return max;
//	printf("最大值max=%d\n",max);


}
int qiumin(int arr[],int a)
{
    
    
	int i;
	int min=arr[0];
	for(i=0;i<a;i++)
	{
    
    
		if(arr[i]<min)
		{
    
    
			min=arr[i];
		}
	}
	return min;
//	printf("最小值min=%d\n",min);
}
void shuru()
{
    
    
	int i;
	int a;
	int zonghe,max,min;
	int arr[5];
	char aee[3];
	float ass[4];
	for(i=0;i<5;i++)
	{
    
    
		printf("请输入第%d个同学的成绩:",i+1);
		scanf("%d",&a);
		if(a>100 || a<0){
    
    
			printf("你好恶心,咋可能有这样的分数!\n");
			exit(-1);
		}
		arr[i]=a;
	}
	
	printf("arr数组的内存为:%d\n",sizeof(arr));//int数组中一个数据占用4个字节
	printf("一个int数组单个数据占用字节为:%d\n",sizeof(int));//char数组一个数据占用1个字节;用此特性就可以知道数组里面有多少数据。  
	printf("arr数组里面有%d个数据\n",sizeof(arr)/sizeof(int));//sizeof()可以求得一个数组所占内存大小。 
	
	//问:求一个数组a中元素个数?
	//sizeof(a)/sizeof(a[0]) 完毕。因为没有告诉数组为int型还是char或者其他,不知道一个元素占用多少字节,所以用一个基础变量a[0]. 
	printf("aee数组的内存为:%d\n",sizeof(aee));
	printf("一个char数组单个数据占用字节为:%d\n",sizeof(char));
	printf("aee数组里面有%d个数据\n",sizeof(aee)/sizeof(char));
	
	printf("ass数组的内存为:%d\n",sizeof(ass));
	printf("一个float数组单个数据占用字节为:%d\n",sizeof(float));
	printf("ass数组里面有%d个数据\n",sizeof(ass)/sizeof(float));
	
	printf("*****************************************************************\n");
	
	qiuz(arr);
	zonghe=qiuhe(arr,sizeof(arr)/sizeof(arr[0]));
	max=qiumax(arr,sizeof(arr)/sizeof(arr[0]));
	min=qiumin(arr,sizeof(arr)/sizeof(arr[0]));
	
	printf("成绩总共为:%d\n",zonghe);
	printf("平均成绩为:%f\n",(float)zonghe/a);
	printf("最大值max=%d\n",max);
	printf("最小值min=%d\n",min);
}
int main()
{
    
    
	
	int i;
	int arr[10];
	tips();	
	shuru();
	
	
	return 0;
 } 

输出结果为:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43482790/article/details/114580897