数组的初始化及找大小
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)