
一维数组:
#define months 12
int day[months]={31,28,31,30,31,30,31,31,30,31,30,31};
一维数组在定义的同时进行了初始化。下标从0开始,到months-1。
二维数组:
二维数组的定义以及初始化:
short matrix[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
short matrix[][4]={{1,2,3,4},{5,6,7,8},{9,10};
第一维长度可以省略,但是第二维的长度不能省略。个数可以小于数组初始化的个数,默认初始化为0。
从键盘输入某年某月,输出该年该月拥有的天数:
#include
#define MONTHS 12
int main()
{
int days[2][MONTHS]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int year,month;
do
{
scanf("%d%d",&year,&month);
}while(year<0||year>12||month<0||months>12);
if((year%4==0)&&(year%100!=0)||(year%400)==0)
printf("%d\n",days[1][montn-1]);
else
printf("%d\n",days[2][montn-1]);
}
8.2向函数传递一维数组
从键盘输入学生成绩,计算平均分和最高分。
#include
#include
int ReadScore(int Score[])//数组名是代表数组的首地址,进行是址传递
{
int i=-1;
do
{
i++;
scanf("%d",&score[i]);
}while(score[i]>=0);
return i;
}
int Average(int score[],int n)
{
int i,sum;
sum=0;
if(n>0)
{
for(i=0;imax)
{
max=score[i];
}
}
return max;
}
int main()
{
int score[20],n,ret,max;
scanf("%d",&n);
n=ReadScore(score);
if(n==0)
{
exit(0);
printf("输入有误!\n");
}
aver=Average(score,n);
if(aver==-1)
{
exit(0);
printf("无法求得平均数!\n");
}
else
{
printf("aver=%d\n",aver);
}
max=FindMax(score,n);
printf("max=%d\n",max);
return 0;
}
8.3排序和查找
冒泡排序。
void DateSort(int score[],int n)
{
int i,j,temp;
for(i=0;i
快速排序。
void DateScore(int score[],int n)
{
int i,j,k,temp;
for(i=0;i
折半查找。
int BinSearch(long num[],long x,int n)
{
int low=0,high=n-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(x>num[mid])
{
low=mid+1;
}
else if(x
8.4向函数传递二维数组
计算每个学生、每门课程的总分和平均分。
#include
#define STUD_N 40
#define COURSE_N 30
void ReadScore(int score[][COURSE_N],int num[],int n)
{ //可以省略第一列,第二列不能省略
int i,j;
for(i=0;i
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)