高级语言程序设计实验四数组
- 格式:doc
- 大小:116.00 KB
- 文档页数:3
课程名称:结构化程序设计与C语言开课实验室:年月日一、实验目的用C语言编写和调试数组的程序,包括一维数组和二维数组。
从而对数组的程序设计有比较深入的了解。
二、内容及结果1、程序二选择排序法1)题目:用选择法对10个整数排序。
2)代码:#include<stdio.h>int main(){int a[10];int i,j,t;printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");return 0;}3)运行截图:2、程序二将一个数组中的值按逆序重新存放。
1)题目:将一个数组中的值按逆序重新存放。
2)代码:# include <stdio.h>int main (){int a[5]={8,6,5,4,1};int i,t;for(i=0;i<=2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i<=4;i++)printf("%d ",a[i]);return 0;}3)运行截图:3、程序三输出杨辉三角形(10行)1)题目:输出杨辉三角形(10行)2)代码:#include<stdio.h>int main(){int yh[10][10]={0};int i,j;for(i=0;i<10;i++)yh[i][0]=1;for(i=1;i<10;i++)for(j=1;j<10;j++)yh[i][j]=yh[i-1][j-1]+yh[i-1][j];for(i=0;i<10;i++){for(j=0;j<i+1;j++)printf("%5d",yh[i][j]);printf("\n");}}3)运行截图:4、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。
C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。
通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。
数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。
数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。
可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。
数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。
二维数组数组可分为一维和多维数组。
一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。
二维数组有行号和列号,因此,它同样需要两个下标。
数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。
三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。
程序执行正常。
3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。
《高级语言》实验报告实验:数组程序设计目的与要求1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法。
内容与步骤:1、对于输入的n个整数,先进行升序排序,然后进行二分查找。
(HLOJ 8005)@一维数组的输入:int n,a[1000];cin>>n;for(int i1=0;i1<n;i1++)cin>>a[i1];@升序:for(int i=0;i<n-1;i++){int pos=i;for(int j=i+1;j<n;j++){if(a[pos]>a[j])pos=j;}swap(a[i],a[pos]);}@二分查找及二维数组的输出:int cnt=0;for(int m=0;m<x;m++){int begin=0,end=n-1;int mid=(begin+end)/2;int t=mid;for(int k=0;k<t;k++){mid=(begin+end)/2;if(b[m]==a[mid]){if(cnt>0)cout<<””;cnt++;cout<<mid+1;break;}else if(b[m]>a[mid])begin=mid+1;elseend=mid-1;if(k>=t){if(cnt>0)cout<<””;cnt++;cout<<”0”;}}}cout<<endl;2、如果矩阵A中存在这样的一个元素A[i][j]满足下列条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。
编写一个程序计算出矩阵A的马鞍点的值。
(HLOJ 1208)@二维数组输入同时对每行每列的最值赋初值:int i,j,m,n,x[101][101];cin>>m>>n;int max[101],min[101];for(i=0;i<m;i++){for(j=0;j<n;j++)cin>>x[i][j];min[i]=x[i][0];max[i]=x[0][i];}@查找每行每列的最值:for(i=0;i<m;i++){for(j=0;j<n;j++){if(x[i][j]<min[i])min[i]=x[i][j];if(x[i][j]>max[j])max[j]=x[i][j];}}@判断元素x[i][j]是不是马鞍点,对马鞍点个数赋初值0:int z=0;for(i=0;i<m;i++){for(j=0;j<n;j++){if(max[i]==min[j]){cout<<min[j]<<endl;z++;} }}3、对给定的数据进行排序。
数组程序设计实验报告数组程序设计实验报告引言在计算机科学领域,数组是一种重要的数据结构,用于存储和操作大量相同类型的数据。
数组的使用广泛,无论是在算法设计还是软件开发中,都扮演着重要的角色。
本实验旨在通过编写数组程序,探索数组的特性和应用。
一、数组的定义与初始化数组是一种由相同类型的元素组成的集合,每个元素都可以通过索引访问。
在程序中,我们可以通过声明数组变量来定义一个数组。
例如,int numbers[5]就定义了一个包含5个整数的数组。
数组的初始化可以在声明时进行,也可以在后续的代码中进行。
二、数组的基本操作1. 访问数组元素数组元素可以通过索引来访问,索引从0开始。
例如,numbers[0]表示数组numbers的第一个元素。
通过循环遍历数组,我们可以逐个访问数组中的元素。
2. 修改数组元素数组元素的值可以通过索引进行修改。
例如,numbers[0] = 10将把数组numbers的第一个元素的值修改为10。
3. 数组的长度数组的长度是指数组中元素的个数。
在C语言中,可以通过sizeof运算符来获取数组的长度。
例如,sizeof(numbers) / sizeof(numbers[0])将返回数组numbers的长度。
三、数组的应用1. 数组的排序数组排序是数组程序设计中常见的任务之一。
常见的排序算法包括冒泡排序、选择排序和插入排序。
通过对数组元素进行比较和交换,可以将数组按照升序或降序排列。
2. 数组的搜索数组搜索是另一个常见的任务,它涉及在数组中查找特定的元素。
线性搜索是一种简单直观的搜索方法,它逐个比较数组元素,直到找到目标元素或搜索完整个数组。
二分搜索是一种更高效的搜索方法,它要求数组事先有序。
3. 多维数组除了一维数组,我们还可以使用多维数组来存储和处理更复杂的数据。
二维数组是最常见的多维数组形式,它可以看作是一个表格或矩阵。
通过使用行和列的索引,我们可以访问和修改二维数组中的元素。
创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。
2、实验结束后填写通过后的源程序和对实验的总结。
3、通过后的源程序可以手写也可以打印粘贴。
实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。
学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。
+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。
(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。
实验四数组实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法;(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法(特别是排序算法)。
二、实验内容1、任务名称: 调试下列c50101.c程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
写出调试过程。
源代码:#include <stdio.h>#define N 10void main(){ int i,a[N];double av=0;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N;i++){ printf("%d",a[i]);if((i+1)%3==0)printf("\n");}for(i=0;i!=N;i++)av+=a[i];av=av/N;printf("\nav=%f\n",av);}运行结果:(需要截图)运行结果分析:求平均数首先应该要求和,题目中求和没有给变量赋初值,这样得到的结果是不可预料的,求和后应除以总数,但不能用语句av=sum/10;因为这样得到的结果是去掉小数点后的结果,不准确,应用语句av=sum/10.0;。
2、任务名称: 下面c50102.c程序是输入5个数据,然后求它们的和并输出结果。
源代码:#include <stdio.h>void main(){int i,a[5],sum=0;scanf("%d",&a[5]);for (i=0;i<=5;i++)sum+=a[5];printf("sum=%d\n",sum);}运行结果:(需要截图)运行结果分析:语句scanf("%d,%d,%d,%d,%d", a );错误,因为数组元素的输入和输出只能逐个元素操作,而不能以数组名作整体操作。
2010级用高级语言程序设计实验报告quan《高级语言程序设计》实验报告实验室名称:班级:学生姓名:学号:指导教师:学期:2009-2010学年上学期实验1 C 程序设计入门一、实验目的1、熟悉C 编程环境2、掌握简单C 程序的编辑、编译和运行方法二、知识要点1、用printf 函数输出指定字符串(转义字符的使用)2、计算并输出表达式的值3、程序书写风格三、实验预习(要求做实验前完成)1、若要在屏幕输出信息,需要用到库函数:2、输出的信息若需换行,需要用到换行符:3、按C 语言语法规则写出下列算法的表达式(1)26乘以49,再除以17:(2)求29除以6的余数:四、实验内容 (要求提供:① 算法描述或流程图② 源程序 )1、编程输出“我的信息”,包括姓名、性别、专业名称和课程名称,格式为:姓名:性别:专业名称:课程名称:2、编程求以下表达式的值:1491516232+-+ 3、编程计算并输出16.8与27.5两个数的和、差、积、商,要求输出界面为:和是:差是:积是:商是:五、实验结果要求写出运行界面并输出运行结果实验2─3 数据类型、常量变量及顺序结构程序设计一、实验目的1、掌握常量和变量的概念以及使用1、掌握变量的定义、赋值与引用2、掌握顺序结构相关语句的使用3、掌握scanf和printf输入、输出数据的方法二、知识要点1、变量与常量概念2、数据输入、输出的格式控制3、标准库函数与头文件的使用4、算术运算与赋值运算5、数据类型转换三、实验预习(要求做实验前完成)1、假如要定义两个整型变量x和y,语句int x y;错在哪里?2、把a的值赋给b,其语句是:3、如果使用语句scanf(“%d%d”,&x,&y);输入8和9两个整数,其输入格式应该是:4、如果使用语句scanf(“%d,%d”,&x,&y);输入8和9两个整数,其输入格式应该是:5、程序中如果要用到库函数sin,则应包含头文件:6、假设x是一个实型变量,语句printf(“%d”,x);错在哪里?7、语句x=10; y=20; printf(“y=%d, x= %d”,x,y); 能否交换x和y的值?四、实验内容(要求提供:①算法描述或流程图②源程序)1、输入两个人的身高,计算并输出他们的平均身高。
高级C语言程序设计实验报告.XXXX大学XXXX学院实验报告课程名称:高级语言程序设计(C)实验名称:循环、数组、函数和结构体程序设计实验类型:验证性□综合性√设计性□实验室名称:校计算中心班级:通信10-1班学号:姓名:组别:同组人:成绩:实验日期:实验报告撰写要求一、实验前用预习报告纸撰写预习报告,预习报告包括以下内容1.实验目的2.实验用仪器设备、器材或软件环境3.实验原理、方案设计、程序框图、预编程序等4.实验过程中需要记录的实验数据表格二、实验过程中,要认真观察,仔细记录三、完成实验后用实验报告纸撰写实验报告,包括以下内容1.仪器设备型号及编号2.实验器材或软件环境3.实验步骤、程序调试方法4.实验数据处理及结果分析5.实验中存在的问题6.体会及思考四、报告撰写时,要求格式规范、书写整齐预习报告成绩:指导教师审核(签名):年月日预习报告一、实验目的:(1)掌握结构体类型变量的定义和使用(2)掌握结构体类型变量的概念和使用(3)掌握用指针访问结构体的方法(4)掌握利用结构体进行函数参数的传递二、实验软件环境:Microsoft Visual C++ 6.0三、1.实验原理:利用结构体、函数的调用和指针的传输。
2.方案设计:首先定义一个结构体,用来存储信息;定义一个主函数,用来输出各项结果;定义一个input函数用于输入各项信息;定义一个average函数用于求平均值和总分;定义一个maximum用于求总的平均值;3.程序框图:4.预编程序:#include<stdio.h>#define N 10struct stu{int number,score1,score2,score3,total;float average;char name[10];}students[N],stud[N],*p1;float aver;int a;main(){input(students);average(students);maximum(students[N]);printf(" No. name score1 score2 score3 total average\n");for(p1=students;p1<students+N;p1++)printf("%5d%8s%10d%10d%10d%9d%11.2f\n",p1->number,p1->name,p1->score1,p1->score2/,p1->score3,p1->total,p1->average);printf("average=%0.2f",aver);printf("\nThe highest score:%s,scoretotal:%d\n",students[a].name,students[a].total);}input(struct stu *p1){for(p1=students;p1<students+N;p1++){scanf("%d%d%d%d",&p1->number,&p1->score1,&p1->score2,&p1->score3);gets(p1->name);}}average(struct stu *p1){float ave=0.0;for(p1=students;p1<students+N;p1++){p1->total=p1->score1+p1->score2+p1->score3;p1->average=p1->total/3.0;}for(p1=students;p1<students+N;p1++)ave+=(p1->average);aver=ave/3.0;}maximum(struct stu *p2){ int temp,i;for(i=0;i<N;i++)if(students[i].total>students[i+1].total){temp=students[i].total;students[i].total=students[i+1].total;students[i+1].total=temp;}for(i=0;i<N;i++)if(students[i].total==temp)a=i;}实验报告成绩:指导教师审核(签名):年月日实验报告一、实验软件环境:Microsoft Visual C++ 6.0二、实验步骤及程序调试方法:先定义结构体,再把main函数、input函数、average函数、maximum 函数的空壳写出来,之后再进一步进行填充;对于main函数我们要利用循环结构将其结果输出来并且实现对其他几个函数的调用;对于input函数我们同样要用循环结构进行各项的信息输入;对于average函数我们要利用它来求平均值和总分;对于maximum函数而偶们要用它来求总的平均值。
C语言实验报告《数组》《数组》实验报告实验目的:掌握C语言中数组的定义、初始化和使用方法,了解数组在程序中的作用和用途,熟悉数组的基本操作。
实验内容:1.数组的定义和初始化2.数组的基本操作-访问数组元素-修改数组元素-遍历数组-数组作为函数参数实验步骤:1.数组的定义和初始化定义一个整型数组,数组名为array,数组大小为10。
使用for循环将数组元素初始化为0。
2.数组的基本操作1) 访问数组元素:通过下标访问数组的元素,例如array[0]表示数组的第一个元素。
2)修改数组元素:通过下标将数组的元素修改为新的值。
3) 遍历数组:使用for循环遍历数组的每个元素,并输出其值。
4)数组作为函数参数:将数组作为函数的参数传递,并在函数内对数组进行操作。
实验结果:1.数组的定义和初始化:int array[10];for (int i = 0; i < 10; i++)array[i] = 0;}2.数组的基本操作:1)访问数组元素:int x = array[0]; // 访问第一个元素的值,即数组的第一个元素2)修改数组元素:array[0] = 1; // 将第一个元素的值修改为13)遍历数组:for (int i = 0; i < 10; i++)printf("%d ", array[i]); // 输出每个元素的值}4)数组作为函数参数:void printArray(int arr[], int len)for (int i = 0; i < len; i++)printf("%d ", arr[i]); // 输出数组的每个元素}}int maiint myArray[5] = {1, 2, 3, 4, 5};printArray(myArray, 5); // 将数组myArray作为参数传递给printArray函数return 0;}实验总结:通过本次实验,我们掌握了C语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。