C语言实验报告 数组.doc
文本预览下载声明
学 生 实 验 报 告
学 院: 软件与通信工程学院
课程名称: C语言与程序设计
专业班级: 通信121
姓 名:
学 号:
学生实验报告(4)
学生姓名 学号 同组人 实验项目 函数 □必修 □选修 □演示性实验 □验证性实验 □操作性实验 □综合性实验 实验地点 M002 实验仪器台号 指导教师 实验日期及节次 周一56节课 一、实验综述
1、实验目的及要求
1.一维数组和二维数组的定义方法,以及其元素的访问形式
2.用字符数组来处理字符串及字符串处理函数
3.掌握数组处理中的有关排序和查找算法
2、实验仪器、设备或软件
计算机、VC++6.0、office、相关的操作系统等。
二、实验过程(实验步骤、记录、数据、分析)
实验题目:
1.用冒泡法将从控制台输入的10个学生的成绩从高到低进行排序;输入一个学生的成绩,插入到已排好序的学生成绩数组中去;最后将排好序的成绩单进行反序存放。
(一)、程序如下:
#includestdio.h
void order(int n,int a[])
{
int i,j,t;
for(i=0;i=n-2;i++)
for(j=1;j=n-i-1;j++)
if(a[j-1]a[j]){t=a[j-1];a[j-1]=a[j];a[j]=t;}
}
void insert(int n,int a[])
{
order(n,a);
}
void main()
{
int a[11],i;
for(i=0;i=9;i++)
scanf(%d,a[i]);
order(10,a);
for(i=9;i=0;i--)
printf(%2d ,a[i]);
putchar(\n);
printf(Enter a students grade:);
scanf(%d,a[10]);
insert(11,a);
for(i=0;i=10;i++)
printf(%2d ,a[i]);
putchar(\n);
}
(二)、在VC++中输入程序并编译它。如图:
程序没有错误
(三)、结论结strcat()函数。
(一)、程序如下:
#includestdio.h
void main()
{
char a[80],b[80];
int i=0,j=0;
gets(a);gets(b);
while(a[i]!=\0)
i++;
a[i]= ;
while(b[j]!=\0)
a[++i]=b[j++];
a[++i]=\0;
puts(a);
}
(二)、在VC++中输入程序并编译它。如图:
三、结论结 (1) 求3×3矩阵的对角线元素之和。
程序如下:
#includestdio.h
#define N 3
void main()
{
int a[N][N],sum=0,i,j;
printf(Please input an array:\n);
for(i=0;iN;i++)
{
for(j=0;jN;j++)
scanf(%d,a[i][j]);
}
for(i=0;iN;i++)
{
for(j=0;jN;j++)
if(i==j||i+j==N-1) sum+=a[i][j];
}
printf(The sum of special elements is %d\n,sum);
}
(二)、在VC++中输入程序并编译它。如图:
程序没有错误
(三)、结论结
2、分析讨论:
(1)对于二维数组元素值的读入,应使用双重循环来实现。
(2)二维数组定义时,数组长度必须是常量或者符号常量,不能是变量,这一点尤其要注意。
(3)矩阵处于对角线上的元素的下标要么相等,要么相加等于一常数,这一点是我们解题的关键。
(四)、指导教师评语及成绩:
3、(2) 从键盘输入一个0~99999之间的整数。①它是一个几位数;②将该数的各位数字按逆序输出。
(一)、程序如下:
#includestdio.h
void main()
{
int a[5],x,i=0,j;
printf(Please input an integer from zero to one thousand:\n);
scanf(%d,x);
while(x!=0){
a[i++]=x%10;
x=x/10;
}
printf(它是一个%d位数\n,i++)
显示全部