- 实验项目名称:实验7数组的基本使用
- 实验项目类型:验证性
- 实验日期:2024年4月22日
一、实验目的
1.熟练掌握数组的定义格式和数组元素的表示方法
2.熟悉数组的初始化方法和赋值方法
3.掌握字符数组存放字符串的方法和字符串函数的使用
4.熟悉数组元素的操作,特别是输入与输出操作
5.掌握与数组有关的典型算法,比如排序算法、矩阵的处理、字符串的处理
6.进一步学习程序调试;
二、实验硬、软件环境
Windows计算机、Devc6.0
三、实验内容及步骤
实验内容:
编写程序:
(1)输入10个同学的成绩,求出平均成绩,并把低于平均成绩的分数显示出来。
(2)用冒泡法对10个同学的C语言成绩由高到低进行排序,并输出最高分和最低分
(3)将一个3*3的矩阵存入二维数组,找出其中的最大值,以及最大值对应的行下
标和列下标。
(4)将一个二维数组的行和列互换,存到另一个二维数组中。
(5)某班本学期有5门课程,分别输入某宿舍4名同学的各科成绩。输入全部成绩后,
统计输出该宿舍每个同学的总成绩。
实验步骤:
项目1
解题思路
先定义一个长度为10的整型数组,然后输入10个分数,再使用for循环来计算总分,接这用avg=sum/i来计算平均成绩,最后选出低于平均成绩的
核心代码
#include <stdio.h>
int main()
{
int a[10],i,sum=0,avg;
printf("请输入10个分数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
avg=sum/i;
printf("平均成绩:%d\n",avg) ;
for(i=0;i<10;i++)
{
if(a[i]<avg)
printf("低于平均分的成绩:%d\n",a[i]);
}
}
结果截图
项目2
解题思路
先定义一个整型数组,输入同学的成绩,通过for循环来对输入同学的成绩进行排序,再最后选出最高分和最低分
核心代码
#include<stdio.h>
#define N 10
int main()
{
int i,math[N],t,j;
printf("请输入多个同学的成绩:\n");
for(i=0;i<N;i++)
scanf("%d",&math[i]);
for(j=0;j<N-1;j++)
for(i=0;i<N-1-j;i++)
if(math[i]<math[i+1])
{
t=math[i];
math[i]=math[i+1];
math[i+1]=t;
}
printf("多个同学的成绩排序为:\n");
for(i=0;i<10;i++)
printf("%3d",math[i]);
printf("\n");
printf("最高分为:%d\n",math[0]);
printf("最低分为:%d\n",math[N-1]);
}
结果截图
项目3
解题思路
先定义数组,i,j,max,I,J;通过for循环来计算,选出矩阵最大值赋给max,把行和列赋给I,J
核心代码
#include<stdio.h>
int main()
{
int a[3][3],i,j,max,I,J;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d", &a[i][j]);
}
}
max=a[0][0];
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
I=i;
J=j;
}
}
}
printf("最大值:%d\n其行下标为:%d\n列下标为:%d\n",max,I,J);
}
结果截图
项目4
解题思路
先定义数组a和b,通过for循环来将数组a的行和列互换,在将数组a中的行赋给数组b的列,数组a的列赋给数组b的行
核心代码
#include<stdio.h>
int main()
{
int a[2][3] = { {1,2,3},{1,2,3} };
int b[3][2], i, j;
for (i = 0; i <= 1; i++)
{
for (j = 0; j <= 2; j++) {
printf( "%d\t",a[i][j] );
b[j][i] = a[i][j];
}
printf("\n");
}
printf("\n");
for (i = 0; i <= 2; i++) {
for (j = 0; j <= 1; j++) {
printf("%d\t", b[i][j]);
}
printf("\n");
}
}
结果截图
项目5
解题思路
先定义整型数组和sum;然后通过for循环来计算4名同学的5科总成绩,最后通过printf来输出
核心代码
#include<stdio.h>
int main()
{
int score[4][5], sum[4]={0};
int i=0, j=0;
for (i=0;i<4;i++)
{
printf("请输入第%d位同学的5门成绩:\n",i+1);
for (j=0;j<5;j++)
{
scanf("%d", &score[i][j]);
}
}
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
sum[i]=score[i][j]+sum[i];
}
}
printf("四位同学的总分分别是:\n");
for (i=0;i<4;i++)
printf("%d\n",sum[i]);
}
结果截图
四、实验结果及分析
1.在项目1中,可以先定义一个长度为10的整型数组,使用for循环来计算总分,再用avg=sum/i来计算平均成绩,最后选出低于平均成绩的,最后用printf来输出
2.使用数组能够存储大量数据,方便查找数组元素