c语言程序实验————实验报告七
c语言程序实验————实验报告七
- 实验项目名称: 实验报告7 数组的基本使用
- 实验项目类型:验证性
- 实验日期:2024 年 4 月 22 日
一、实验目的
1.熟练掌握数组的定义格式和数组元素的表示方法
2.熟悉数组的初始化方法和赋值方法
3.掌握字符数组存放字符串的方法和字符串函数的使用
4.熟悉数组元素的操作,特别是输入与输出操作
5.掌握与数组有关的典型算法,比如排序算法、矩阵的处理、字符串的处理
6.进一步学习程序调试;
二、实验硬、软件环境
Windows计算机、Dev c 6.0
实验内容:
(1)输入10个同学的成绩,求出平均成绩,并把低于平均成绩的分数显示出来。
(2)用冒泡法对10个同学的C语言成绩由高到低进行排序,并输出最高分和最低分
(3)将一个3*3的矩阵存入二维数组,找出其中的最大值,以及最大值对应的行下标和列下标。
(4)将一个二维数组的行和列互换,存到另一个二维数组中。
(5) 某班本学期有5门课程,分别输入某宿舍4名同学的各科成绩。输入全部成绩后,统计输出该宿舍每个同学的总成绩。
三、实验步骤:
项目一
解题思路
int定义数组a[10],i,sum=0,avg。for函数定义i=0,i<10,i++.scanf调用数组a[i];输入表达式sum=sum+a[i],avg=sum/i;printf输出平均值avg,for函数定义(i=0;i<10;i++),
if函数定义a[i]<avg,printf输出低于平均值的成绩a[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]);
}
printf("31韩翔-项目1");
}
实验截图

项目二
解题思路
输入#define N 10。int输入a[10],i,j,x,max,min。for函数定义i=0;i<N;i++,scanf调用a[i]。for函数再次定义i=0;i<N;i++,然后定义j=0;j<N-i-1;j++,if函数定义a[j]<a[j+1],输入表达式x=a[j];a[j]=a[j+1];a[j+1]=x;for函数定义i=0;i<10;i++。printf输出a[i],max=a[0],for函数定义i=0;i<10;i++,if函数定义max<a[i],输入max=a[i];min=a[0];for函数(i=0;i<10;i++),if函数定义min>a[i],输入min=a[i]。最后printf分别输出最高分和最低分max,min。
核心代码
#include<stdio.h>
#define N 10
main()
{
int a[10];
int i,j,x;
int max,min;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1;j++)
{
if(a[j]<a[j+1])
{
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
}
for(i=0;i<10;i++)
printf("%d \n",a[i]);
max=a[0];
for(i=0;i<10;i++)
{
if(max<a[i])
{
max=a[i];
}
}
min=a[0];
for(i=0;i<10;i++)
{
if(min>a[i])
{
min=a[i];
}
}
printf("最高分是%d\n",max);
printf("最低分是%d\n",min);
printf("31韩翔-项目2");
}
实验截图

项目三
解题思路
int输入数组a[3][3],i,j,max,I,J.for函数定义(i=0;i<3;i++)然后定义j=0;j<3;j++。scanf调用a[i][j]。max=a[0][0];for函数定义(int i=0;i<3;i++)然后定义(int j=0;j<3;j++), if函数定义
(a[i][j]>max),输入表达式 max=a[i][j];I=i;J=j;printf输出最大值,行下标和列下标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);
printf("31韩翔-项目3");
}
实验截图

项目四
解题思路
int输入数组a[2][3] = { {1,2,3},{4,5,6} }和数组b[3][2], i, j;for函数定义(i = 0; i <= 1; i++)然后定义(j=0;j<=2;j++)。printf啊输出a[i][j],输入表达式b[j][i] = a[i][j];
for函数定义(i=0;i<=2;i++)然后定义(j=0;j<=1;j++)。printf输出b[j][i]
核心代码
#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);
printf("31韩翔-项目3");
}
实验截图

项目五
解题思路
int输入数组score[4][5], sum[4]={0};和i=0, j=0;for函数定义(i=0;i<4;i++),printf输出第%d为同学的5门成绩i+1。for函数定义j=0;j<5;j++,scanf调用score[i][j]。for函数定义(i=0;i<4;i++)然后定义(j=0;j<5;j++),输入表达式sum[i]=score[i][j]+sum[i];for函数定义 (i=0;i<4;i++),printf输出四位同学的总分sum[i]
核心代码
#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]);
printf("31韩翔-项目5");
}
实验截图

四、实验结果及分析
在项目一中scanf里把双引号位置输错,导致运行不了,后经同学提醒改正
在项目二中没有输入#define N 10,结果运行出错,后经别人帮助改正运行
在项目五中没有最后的输出代码后没有带分号,改正后顺利运行
浙公网安备 33010602011771号