1.演示复习,引出实验任务
【例】有一个3×4的矩阵,要求编程序以求出其中值最大的那个元素的值及其所在的行号和列号。
#include<stdio.h>
#define n 4
#define m 3
int main()
{
int a[m][n],i,j,p,q,max;
printf("请输入%d数",m*n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
max=a[0][0];
p=0;q=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;
q=j;
}
printf("最大值为%d 行号为%d 列号为%d",max,p+1,q+1);
return 0;}
(1) 数组名的命名规则和变量名相同,遵循标识符命名规则。
(2) 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。
(3) 在定义时,常量表达式中可以包括常量和符号常量,不能包含变量。
(4) 数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。
2.布置实验任务
【任务1】有一个4×5的矩阵,要求编程序以求出其中值最大的那个元素的值及其所在的行号和列号。
【任务2】设有一个二维数组A(4,4),数据自已给出。请编程:求两条对角线元素之和,并输出。
#include<stdio.h>
#define n 4
#define m 4
int main()
{
int a[m][n],i,j,s=0,l=0,k=0,o=0,r=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(i+j==3 || i==j)
s+=a[i][j];
printf("对角线元素之和为%d\n",s);
}
【任务3】设有一个二维数组A(4,4),数据自已给出。请编程:交换第二行和第三行的位置,并输出处理后的数据。
【任务4】举一反三:输入十个学生的成绩到数组A,然后将大于平均分的成绩放入数组B中,并输出。
#include<stdio.h>
#define n 10
int main()
{
int a[n],b[n],i,j=0,m,aver,s=0;
printf("请输入%d数",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
s+=a[i];
aver=s/n;
for(i=0;i<n;i++)
if(a[i]>aver)
b[j++]=a[i];
m=j;
for(j=0;j<m;j++)
printf("高于平均分得有%4d\n",b[j]);
return 0;
}
731

被折叠的 条评论
为什么被折叠?



