文档详情

C语言实验报告 数组.doc

发布:2017-01-03约2.91千字共12页下载文档
文本预览下载声明
学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: 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++)
显示全部
相似文档