目录 1.基本介绍
2.使用
一、一维数组
1.定义,初始化,引用
//数组的定义
int a[10]; //int为数组类型,a为数组名,10为数组长度
//数组的初始化
int a[6]={1,2,3} //局部初始化,未初识化的位置自动赋值为0
int a[6]={1,2,3,4,5,6} //全部初始化,赋初值的个数不能超过数组总元素的个数
int a[]={1,2,3} //可不指定数组长度
//数组的引用
//引用形式:数组名[下标]
a[3] //意为数组中序号为3的元素
a[3]=a[0]+a[i-1] //下标可以是整形常量和整形表达式,
//下标的值是数组元素序号,从0开始,到n-1结束
2.输入输出
#include<stdio.h>
#define n 3 //意为在整个程序中n的值被定义为3
void main()
{
int a[n],i;
for(i=0;i<n;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
printf("输出第%d个数为:%d\n",i+1,a[i]);
}
}
3.输入10个学生的成绩,求平均分、最高分、最低分。用一维数组求解。
#include<stdio.h>
int main()
{
int i,sum=0,max=0,min=0,c[10]; //sum:总成绩,max:最高分。min:最低分。
float ave; //ave:平均分
for(i=1;i<10;i++)
{
scanf("%d",&c[i]);
sum+=c[i];
if(c[i]>max)
max=c[i];
if(c[i]<min)
min=c[i];
}
ave=(float)sum/10;
printf("平均分为:%f,最高分为:%d,最低分为:%d\n"ave,max,min);
return 0;
}
二、二维数组
1,定义,初始化,引用
//数组的定义
//定义数组的形式为:类型说明符[常量表达式1][常量表达式2]
int a[3][4] //3为行数,4为列数,定义数组的常量必须为大于0的整数。
//数组的初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}//分行赋初值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12} //将所有数据写在一个花括号内,按数据元素在内存中的排列顺序对个元素赋初值
int a[3][4]={{1},{2},{3}} //可对部分元素赋初值
int a[3][4]={{1},{2},{0,0,7,0}} //对各行某一元素赋初值
int a[3][4]={{1},{3,4}} //只对某几行赋初值
//数组的引用
//引用形式为:数组名[下标1][下标2],下标1和下标2可以是整形常量、整形变量和表达式。其编号从0开始。
数组名a代表数组a在内存中的首地址
2.输入输出
#include<stdio.h>
#define N 3
int main(void)
{
int i, j;
int score[N][N];
printf("Please input:\n");
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
{
scanf("%d", &score[i][j]);
}
printf("Output:\n");
for (i = 0; i < N; i++)
{
printf("Row%d:", i + 1);
for (j = 0; j < N; j++)
printf("%4d", score[i][j]);
printf("\n");
}
return 0;
}
3.将一个二维数组a的行和列的元素互换,保存到另一个二维数组b中
#include<stdio.h>
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(j=0;j<3;j++)
{
for(i=0;i<2;i++)
printf("%5d",b[i][j]);
printf("\n");
}
}