一、二维数组定义与赋值
1.定义
一维数组:
int score[3];
二维数组:
int score[2][3]
2:行数
3:列数
行数和列数:只能是整形常量,不能是变量
元素是在计算机中是按行存储,即先存储第一行所有元素,在存储第二行所有元素,依次存储
2.初始化
int score[2][1]={{1,2,3},{4,5,6}};
3.从键盘输入赋值
一维数组:
scanf("%d",&a[i]);
二维数组:
scanf("%d",&a[][]);
二、二维数组元素引用
1.输出
int score[2][3];
for(i=1;i<2;i++){
for(i=0;i<3;i++)
printf("%d",score[i][j]);
}
2.习题
输入学生成绩
#include<stdio.h>
int main()
{
int score[2][3];
int i,j;
for(i=0;i<2;i++){
printf("请输入第%d名学生成绩(语,数,英)\n",i+1);
for(j=0;j<3;j++)
scanf("%4d",&score[i][j]);
}
for(i=0;i<2;i++)
{
printf("第%d名学生成绩\n",i+1);
for(j=0;j<3;j++)
printf("%4d ",score[i][j]);
printf("\n");
}
}
求学生平均分
#include<stdio.h>
int main()
{
int score[2][3];
int sum;
float aver;
int i,j;
for(i=0;i<2;i++){
printf("请输入第%d名学生成绩(语,数,英)\n",i+1);
for(j=0;j<3;j++)
scanf("%4d",&score[i][j]);
}
for(i=0;i<2;i++)
{
sum=0;
for(j=0;j<3;j++)
sum+=score[i][j];
aver =sum/3.0;
printf("第%d名学生的平均分:%.f\n",i+1,aver);
}
for(i=0;i<2;i++)
{
printf("第%d名学生成绩\n",i+1);
for(j=0;j<3;j++)
printf("%4d ",score[i][j]);
printf("\n");
}
}
求每门课平均分
#include<stdio.h>
int main()
{
int score[2][3];
int sum;
float aver;
int i,j;
for(i=0;i<2;i++){
printf("请输入第%d名学生成绩(语,数,英)\n",i+1);
for(j=0;j<3;j++)
scanf("%4d",&score[i][j]);
}
for(j=0;j<3;j++)
{
sum=0;
for(i=0;i<2;i++)
sum+=score[i][j];
aver =(float)sum/i;
printf("第%d门课程的平均分:%.2f\n",j+1,aver);
}
for(i=0;i<2;i++)
{
printf("第%d名学生成绩\n",i+1);
for(j=0;j<3;j++)
printf("%4d ",score[i][j]);
printf("\n");
}
}
行列交换
#include<stdio.h>
int main()
{
int score[2][3]={{10,20,30},{60,70,80}};
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%4d",score[i][j]);
printf("\n");
}
printf("_________________\n");
for(j=0;j<3;j++)
{
for(i=0;i<2;i++)
printf("%4d",score[i][j]);
printf("\n");
}
}
求矩阵最大小值
#include<stdio.h>
int main()
{
int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int i,j,max,min;
max=a[0][0];
min=a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
if(a[i][j]>max)
max=a[i][j];
else if(a[i][j]<min)
min=a[i][j];
}
}
for(i=0;i<4;i++)
{
printf("\n");
for(j=0;j<3;j++)
{
printf("%4d",a[i][j]);
}
}
printf("\n__________");
printf("\n最大值%4d",max);
printf("\n最小值%4d",min);
}