数组(二)

数组的初始化及找大小

eg:

#include <stdio.h>
#include <stdlib.h>
/* 提示用户输入5个数,找到最高分,找到最低分 ,算出输入成绩的平均分*/
int main()
{
   int i;
   int max;
   int min;
   int total = 0 ;
   float average; 
   int datas[5]={0};    //1.定义一个5个整型数的数组
     //2.初始化数组
   for(i=0;i<5;i++){
   printf("请输入第%d个学生的分数:",i+1); //2.1提示用户输入第多少个数
   //2.2获取用户的输入scanf
   scanf("%d",&datas[i]);
   if(datas[i] > 100 || datas[i] < 0){
   	printf("你考出了宇宙之外的成绩啊!\n");
       printf("强制退出,重新输入\n");
       system("pause");
       exit(-1);
     }
   }
   for(i=0;i<5;i++){
   printf("第%d个学生的分数是:%d\n",i+1,datas[i]);
   }
   //3.找最高分
   max=datas[0];
   for(i=0;i<5;i++){
   if(max<datas[i]){
   	max=datas[i];
   	}
   }
   printf("最高分为:%d\n",max);
   //4.找最低分
   min=datas[0];
   for(i=0;i<5;i++){
   if(min>datas[i]){
   	min=datas[i];
   	}
   }
    printf("最低分为:%d\n",min);
   //5.求平均值
   //5.1算总分
   for(i=0;i<5;i++){
   total = total+datas[i];
   }
   average= (float)total/5;
   //6.输出结果
   printf("平均分为:%f\n",average);
   
   system("pause");
   
return 0;
}

数组形参
eg:

#include<stdio.h>
#include<stdlib.h>
void arrayprint(datas[3])
{
	int i;
	for(i=0;i<3;i++){
	printf("%d",datas[i])
	}
	putchar('\n');//putchar输出一个字符,getchar吸收一个字符
}
int main()
{
	int array[3]={11,2,3};
	arrayprint(array);//数组和函数结合,数tunr组名当实际参数
	system("pause");
	return 0;
}

注:
void arrayprint(datas[3])
{

}//形式参数中虽然写的是一个数组的样子,中括号中数组的大小是无效的!这里不管中括号中写多少,都不能代表形参数组有多大!这里的中括号的作用仅仅用来表示,该参数是一个C地址!

数组的大小

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a[3]; //一个整型数占用空间4个字节,三个占用12个字节
	cahr b[3];//一个字符型数占用空间1个字节,三个占用3个字节
	printf("a数组的大小是:%d\n",sizeof(a));
	printf("b数组的大小是:%d\n",sizeof(b));
	printf("一个整数的大小是:%d\n",sizeof(int));
	printf("一个字符型的大小是:%d\n",sizeof(char));
	printf("a数组有%d个元素\n",sizeof(a)/sizeof(a[0]));
	printf("b数组中有%d元素\n",sizeof(b)/sizeof(b[0]));
	system("pause");
	return 0;
}

结果:
a数组的大小是:12
b数组的大小是:3
一个整数的大小是:4
一个字符型数的大小是:1
a数组有3个元素
b数组有3个元素

如何计算数组中元素的个数?
数组的大小/一个类型的大小
int a[3]

  • sizeof(a)/sizeof(a[0])
  • sizeof(a)/sizeof(int)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值