答案-实验报告-实验7-数组(学号-姓名)
c语言实验报告《数组》
c语言实验报告《数组》C语言实验报告:数组引言:C语言是一门广泛应用于计算机编程领域的高级编程语言,其强大的功能和灵活性使得它成为了许多程序员的首选。
在C语言中,数组是一种非常重要的数据结构,它能够存储多个相同类型的元素,并通过索引来访问和操作这些元素。
本篇实验报告将重点介绍C语言中的数组,并通过实例来展示其用法和特性。
一、数组的定义和声明在C语言中,数组的定义和声明非常简单。
我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。
例如,我们可以定义一个包含5个整数的数组:```int numbers[5];```这样,我们就成功地声明了一个名为numbers的整数数组,它包含了5个元素。
二、数组的初始化在声明数组的同时,我们还可以为数组的元素赋初值。
这个过程称为数组的初始化。
C语言提供了多种初始化数组的方式,例如:```int numbers[5] = {1, 2, 3, 4, 5};```上述代码将数组numbers的前5个元素分别初始化为1、2、3、4和5。
我们也可以只给部分元素赋初值,未赋初值的元素将自动被初始化为0:```int numbers[5] = {1, 2, 3};```这样,数组numbers的前3个元素将分别被初始化为1、2和3,而后两个元素将被初始化为0。
三、数组的访问和操作数组的访问和操作是我们使用数组的重要环节。
在C语言中,我们可以通过索引来访问和操作数组中的元素。
数组的索引从0开始,即第一个元素的索引为0,第二个元素的索引为1,以此类推。
例如,我们可以通过以下方式来访问数组numbers的第一个元素:```int firstNumber = numbers[0];```上述代码将数组numbers的第一个元素赋值给变量firstNumber。
同样,我们也可以通过索引来修改数组中的元素:```numbers[0] = 10;```上述代码将数组numbers的第一个元素修改为10。
《C语言程序设计》实验报告数组
《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中。
编写以下程序:#include<stdio.h>main(){ int a[6] = {1,3,6,7,9};int i,j,x,t;printf("insert data:");scanf("%d",&x);for(i=0;i<5;i++)if(x<a[i])break;for(j=5;j>i;j--)a[j]=a[j-1];a[j]=x;printf("Now array a:\n");for(i=0;i<6;i++)printf("%4d",a[i]);printf("\n");}结果如下:4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。
编写以下程序:#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][10];亲爱的朋友,上文已完,为感谢你的阅读,特加送另一篇范文,如果下文你不需要,可以下载后编辑删除,谢谢!道路施工方案1、工程概况2、编制说明及编制依据3、主要施工方法及技术措施3.1施工程序3.2施工准备3.3定位放线3. 4土方开挖3.5卵石路基施工3.6天然砾基层施工3. 7高强聚酯土工格楞3.8水泥稳定砂砾基层施工3.9路缘石施工3. 10玻璃纤维土工格栅施工3.11沥青面层施工3. 12降水施工4、质量控制措施5、雨季施工安排6、安全技术措施1.工程概况本项目建设的厂址位于新疆石河子市。
工程场地位于石河子高新技术开发区经七路西。
场地原为麦田,地势南高北低。
C语言实验报告数组
实验七数组1.实验目的(1)熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法如查找、排序等..2.实验指导(1)对任意一个一维型数组;从中找出数组元素的最大值和最小值并输出..要求:①数组有十个元素;②使用scanf函数实现数组元素的输入前给出必要的提示;③输出时;首先输出数组的十个元素;然后输出其最大值和最小值..分析指导:①算法分析:首先定义一个数组;通过循环从键盘输入十个数组元素的值;再通过另一个循环判断数组元素的最大只和最小值;②根据分析情况编写程序:include<stdio.h>mainint a10;i;max;min;printf"please input ten integers:";fori=0;i<=9;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifai>maxmax=ai;ifai<minmin=ai;}fori=0;i<=9;i++{printf"a%d=%d\n";i;ai;}printf"The maximum value is %d;and the minimum value is %d\n";max;min;运行程序;输入十个整数;如:21 37 6 17 9 12 89 76 35 59运行结果如下:(2)编写函数cmpStrchar s1;char s2比较两个字符串s1和 s2的大小..如果s1>s2;返回一个正数;s1=s2;返回0;s1<s2;返回一个负数;在主函数中调用该函数完成字符串的比较操作;并输出返回的值..要求:①不允许使用strcmp函数;②用gets函数在主函数中输入两个字符串;③实现触摸屏受托人函数;返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值..分析指导:①算法分析:两个字符串从第一个字符开始一一对应进行比较;直到不相等的那个字符;从而求得它们的ASCII码的差值..比如;‘A’与‘C’相比;由于‘A’<‘C’;应输出负数;由于‘A’与‘C’的ASCII码的差值为2;因此;应输出“-2”..同理;“And”和“Aid”比较;根据第二个字符比较结果;‘n’比‘I’大5;因此应输出‘5’;②根据分析情况编写程序:include<stdio.h>int cmpstrchar s1;char s2{int i;diff;i=0;whiles1i==s2i&&s1i='\0'i++;ifs1i=='\0'&&s2i=='\0'diff=0;elsediff=s1i-s2i;return diff;}void main{int z;char s1100;s2100;printf"input the first string:";//输入字符串1gets s1;printf"input the second string:";//输入字符串2getss2;z=cmpstrs1;s2;//输出比较结果printf"the difference between two strings is %d\n";z;}查看运行结果如下:重新输入两个字符串meet;mood运行结果如下:(3)再给定的字符串中查找指定的字符..要求:①字符串采用直接初始化的方式处理;②通过scanf函数读入一个任意字符;③在字符串中查找该字符;如果存在该字符;输出该字符在字符串中的一次出现的位置;如果再给定的字符串中不存在该字符;则给出相应的说明信息..include<stdio.h>void main{int i;char ch;char s=" program";printf" 输入一个英文字母: ";scanf"%c";&ch;for i=0;si='\0';i++{if si==chbreak;}if i<7printf"s%d=%c\n";i;ch;elseprintf"No founded\n";}输入一个英文字母O运行程序如下:再次输入一个英文字母w运行程序如下:(4)首先输入一个大于二且小于十的整数n;然后定义一个二维整型数组nn;初始化该数组;讲述组中最大元素所在的行和最小元素所在的行对调..要求:①nn数组元素的值由scanf函数从键盘输入假定最大值最小值不在同一行上;然后输出该数组;②查找最大值最小值所在的行;将数组中最大元素所在的行和最小元素所在的行对调;并输出对调后的数组;③为直观起见;数组按n行n列的方式输出;④修改程序;对最大值与最小值可能出现在一行种的情况进行处理.. include<stdio.h>main{long matrix99;min;max;temp;int i;j;n;nMax=0;nMin=0;printf"\nplease inpute n of matrix:\n";scanf"%d";&n;printf"\nplease inpute elements of matrix%d%d:\n";n;n; fori=0;i<n;i++forj=0;j<n;j++scanf"%ld";&matrixij;min=max=matrix00;fori=0;i<n;i++forj=0;j<n;j++{ifmatrixij>max{max=matrixij;nMax=i;}else ifmatrixij<min{min=matrixij;nMin=j;}}forj=0;j<n;j++{temp=matrixnMaxj;matrixnMaxj=matrixnMinj;matrixnMinj=temp;}printf"\nResult matrix:\n";fori=0;i<n;i++{forj=0;j<n;j++printf"%5ld";matrixij;printf"\n";}}输入一个数4;输入一个44的数组1 3 6 72 4 5 81 3 5 72 6 9 7运行程序如下:再次输入一个数字3;输入一个33的数组1 2 32 4 537 8运行程序如下:3 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
答案 实验报告_实验7_数组(学号_姓名)
实验报告_实验7_数组(学号_姓名)一、实验目的:1、理解数组的作用、特点;2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等);3、掌握字符数组、字符串的使用;4、熟悉打擂台等典型算法。
二、实验内容1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。
使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。
如下图所示:程序代码:#include<stdio.h>int main(){int i;int f[20]={1,2,3};for(i=3;i<20;i++)f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值for(i=19;i>=0;i--){//每行输出5个数据printf("%10d",f[i]);if(i%5==0)printf("\n");}printf("\n\n");return0;}2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。
如下图所示:(提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。
)程序代码:#include<stdio.h>#define N7int main(){double score[N];double max,min,sum,aver;int i;printf("请输入%d位评委的给分:\n",N);for(i=0;i<N;i++)scanf("%lf",&score[i]);max=min=sum=score[0];for(i=1;i<N;i++){if(max<score[i])max=score[i];if(min>score[i])min=score[i];sum=sum+score[i];}sum=sum-max-min;aver=sum/(N-2);printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min);printf("该选手的最后得分是:%.4f\n\n",aver);return0;}3、(基础题)计算矩阵之和:先输出这两个矩阵,再输出求和后矩阵。
c语言实验7数组实验报告
实验报告课程名称程序设计实验项目名称数组班级与班级代码14级计算机科学与技术1班实验室名称(或课室) SS1-332专业计算机科学与技术任课教师学号:姓名:实验日期:2014年月日广东商学院教务处制一.实验目的1.熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2.熟练掌握字符数组和字符串函数的使用。
3.熟练掌握一位数组以及一位数组元素的存储关系。
4.熟练掌握一位数组和二维数组的使用以及在函数中的传递。
5.通过上机实践掌握与数组有关的算法。
二、实验内容上机题1输入并运行以下程序。
实验内容:用2个数组对第3个数组进行赋值#include<stdio.h>main(){int i,a[5],b[5],c[5];a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;for(i=0;i<=4;i++){c[i]=a[i]*b[i];printf("c[%d]=%d\n",i,c[i]);}}实验步骤○1int a[5]:整型一维数组说明,a是数组名,也是数组的起始地址,该数组可以存储5个整数。
a[0]~a[4]也可以看成是变量标识字符,[]中的数值称为数组下标,下标从0开始。
○2数组赋值方法和一般变量一样。
例如,a[0]=2表示将2赋给a[0]。
运行结果上机题2 输入并运行以下程序。
实验内容:对不指明数组的数组进行赋值并用循环结构进行求和#include<stdio.h>main(){int sum,i;int a[]={5,8,4,6,4,3,8,2,4,5,6};sum=0;for(i=0;i<=10;i++)sum+=a[i];printf("sum=%d\n",sum);}实验结果实验小结○1对全部元素赋初值时,可以不指定数组长度,C编译系统自动根据初值个数来决定数组长度。
郑州大学C语言实验报告册答案之实验数组
实验七数组(一)1、用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行3个数。
#include <math.h>void main(){ int a[15],i;for (i=0; i<15; i++){ a[i]=rand();/* 产生-90~32767之间的随机整数*/ if(a[i]<0) a[i]= -a[i];a[i]=a[i]%101;if(i%5==0) printf("\n");printf("%8d ",a[i]);}}2、求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数。
#define N 10void main(){ float a[N]={78,86,65,55,91,83,78,90,69,81};float max=0,min=100,avg=0;int i, num=0;for (i=0; i<N; i++){ if(a[i]>max) max=a[i];if(a[i]<min) min=a[i];avg=avg+a[i];}avg=avg/N;for (i=0; i<N; i++) if(a[i]>avg) num++;printf("\n max=%.2f, min=%.2f\n",max,min);printf("\n > %.2f=%d\n",avg,num);}3、使用数组,求出下列数列的前20项:1, 1, 2, 4, 7, 13, ……void main(){ long a[20]={1,1,2};int i;for(i=3;i<20;i++)a[i]=a[i-1]+a[i-2]+a[i-3];for(i=0;i<20;i++){ if(i%5==0) printf("\n");printf("%9ld ",a[i]);}}4、将一个一维数组反序放置如:a={67,89,76,98.66}反序放置后a={66,98,76,8967}#define N 5void main(){ int a[N]={67,89,76,98,66}, i, k; for(i=0; i<N/2; i++){ k=a[i];a[i]=a[N-i-1];a[N-i-1]=k;}printf(“\n a={%d”,a[0]);for(i=1;i<N;i++)printf(“,%d",a[i]); printf(“}\n”);}5、有10个学生一门课程成绩,使用选择排序法将成绩由高向低排序.#define N 10void main(){int a[N]={67,89,76,98,66,55,77,79,96,89}; int i, j, p, k;for(i=0; i<N-1; i++){ p=i;for ( j=i+1; j<N;j++)if (a[p]<a[j]) p=j;if (p!=i){ k=a[i]; a[i]=a[p]; a[p]=k; } }for( i=0; i<N; i++)printf("%4d", a[i]);}实验七数组(二)1、将一个一维数组a[9]中各元素值按行的顺序放入二维数组b[3][3]中。
C语言实验报告《数组》
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语言中数组的定义和初始化方法,学会了访问数组元素、修改数组元素、遍历数组的操作,还了解了数组作为函数参数的使用。
C语言:数组的应用实验报告
课程名称:结构化程序设计与C语言开课实验室:年月日一、实验目的用C语言编写和调试数组的程序,包括一维数组和二维数组。
从而对数组的程序设计有比较深入的了解。
二、内容及结果1、程序二选择排序法1)题目:用选择法对10个整数排序。
2)代码:#include<>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 <>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<>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、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。
数组实验报告
数组实验报告姓名:学号:班级:计科1501班任课教师:一、实验目的掌握数组的排序、复制等操作二、实验要求实现编程代码,得出最后实验效果图三、实验内容1.编程实现:从键盘接收人任意个整数,并将其存放在数组中,然后求出该数组中的最大值(考察知识点:数组的length属性,求最大值的方法:打擂台).实验效果图如下:2。
编程实现:有一整型数组a,其中数据为3、4、5、1、2、6,编程实现将数组a复制到数组b中(考察知识点:数组的复制)3.编程实现:有一字符串数组,其中的数据有”张三”,”李四",”王五”,”赵六” ,"田七”,"李八" 。
编程查找该数组中是否包含”麻子"。
(考察知识点:数组的查找)实验效果图如下:4。
编程实现:有一整型数组,其中的数据有1、22、33、44、55、66、77.现将34插入到该数组中,并不打乱原来的升序(考察知识点:数组的插入。
提示:先将34替换到77)实验效果图如下:5。
编程实现:有一整型数组,其中数据为34,23,12,56,77,89。
编程实现对数组元素进行升序排序,并输出排序后的结果。
(考察知识点:数组的定义、排序,请使用冒泡排序、选择排序、Array。
sort()三种方法进行排序)6。
编程实现:有一3行3列的2维数组,其中数据为1、2、3、4、5、6、7、8、9。
编程实现其数据的输出(考察知识点:二维数组的赋值、输出)7。
编程实现:综合实例:学生成绩管理系统。
实验效果图如下:四、实验代码(含注释)1、import java.util。
Scanner;public class L1 {public static void main(String[] args){Scanner in=new Scanner(System。
in);System.out.print(”请输出数组的长度:");int num=in。
实验数组的实验报告
一、实验目的1. 掌握数组的基本概念和操作方法。
2. 熟悉C语言中数组的定义、初始化、赋值和引用。
3. 学会使用数组和循环结构进行数据处理。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C语言三、实验内容1. 定义和初始化一维数组2. 访问和修改数组元素3. 使用数组进行数据处理4. 定义和初始化二维数组5. 访问和修改二维数组元素6. 使用二维数组进行数据处理7. 使用数组进行排序和查找四、实验步骤1. 定义和初始化一维数组```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```2. 访问和修改数组元素```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};int i;// 修改数组元素array[2] = 10;// 循环访问数组元素for (i = 0; i < 5; i++) {printf("array[%d] = %d\n", i, array[i]); }return 0;}```3. 使用数组进行数据处理```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5}; int i, sum = 0;// 计算数组元素之和for (i = 0; i < 5; i++) {sum += array[i];}printf("sum = %d\n", sum);return 0;}```4. 定义和初始化二维数组```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```5. 访问和修改二维数组元素```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j;// 修改二维数组元素array[1][1] = 10;// 循环访问二维数组元素for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {printf("array[%d][%d] = %d\n", i, j, array[i][j]); }}return 0;}```6. 使用二维数组进行数据处理```c#include <stdio.h>int main() {int array[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int i, j, sum = 0;// 计算二维数组元素之和for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++) {sum += array[i][j];}}printf("sum = %d\n", sum);return 0;}```7. 使用数组进行排序和查找```c#include <stdio.h>// 交换两个元素void swap(int a, int b) {int temp = a;a = b;b = temp;}// 冒泡排序void bubbleSort(int array[], int length) {int i, j;for (i = 0; i < length - 1; i++) {for (j = 0; j < length - 1 - i; j++) { if (array[j] > array[j + 1]) {swap(&array[j], &array[j + 1]); }}}}// 查找元素int findElement(int array[], int length, int target) { int i;for (i = 0; i < length; i++) {if (array[i] == target) {return i;}}return -1;}int main() {int array[5] = {5, 2, 8, 3, 1};int i, index;// 冒泡排序bubbleSort(array, 5);// 输出排序后的数组for (i = 0; i < 5; i++) {printf("%d ", array[i]);}printf("\n");// 查找元素index = findElement(array, 5, 8);if (index != -1) {printf("Element 8 found at index %d\n", index);} else {printf("Element 8 not found\n");}return 0;}```五、实验结果与分析1. 通过定义和初始化一维数组,可以方便地存储和管理一系列具有相同数据类型的元素。
数组及其应用实验报告
计算机与信息技术学院综合性、设计性实验报告一、实验目的:掌握一维、二维数组的定义及引用,字符数组的输入输出,字符串处理函数等。
本实验综合运用以前各章节所学知识,熟悉数组类型的应用场合以及数组的编程与使用方法,进一步熟悉和掌握数组及相关知识,使得以后在编程过程中更加得心应手。
二、实验仪器或设备:微型计算机。
三、总体设计(设计原理、设计方案及流程等)实验内容:学生成绩统计从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,分别实现下列功能:(1)统计不及格人数(2)统计成绩在全班平均分及平均分之上的学生人数(3)统计各分数段的学生人数及所占的百分比(60以下,60-69,70-79,80-89,90以上)#include<stdio.h>void main(){float p[5],ave,s=0;int i,n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,c;for(i=0;i<5;i++)scanf("%f",&p[i]);printf("\n");for(i=0;i<5;i++)if(p[i]<60) n1++;printf("不及格的人数是%d\n",n1);for(i=0;i<5;i++) s+=p[i];ave=s/5;printf("平均分是%f\n",ave);for(i=0;i<5;i++)if(p[i]>=ave) n2++;printf("平均分之上的学生人数是:%d\n",n2);for(i=0;i<5;i++){c=int(p[i]/10);switch (c){case 9:n3++;break;case 8:n4++;break;case 7:n5++;break;case 6:n6++;break;default:n7++;}}printf("90分以上的人数是%d,所占百分比是%f%%\n80~89的人数是%d,\所占百分比是%f%%\n70~79的人数:%d,所占百分比%f%%\n60~69的人数:%d,\ 所占百分比:%f%%\n60分以下的人数:%d,所占百分比:%f%%\n",n3,n3/5.0*100,n4,n4/5.0*100,n5,n5/5.0*100,n6,n6/5.0*100,n7,n7/5.0*100);}四、实验步骤:(包括主要步骤、代码分析等)实验分三个阶段完成:1. 分析设计阶段:找出实现方法,按照需求分析设计算法。
C语言实验报告《数组》_实验报告_
C语言实验报告《数组》学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验三数组一、实验目的1、掌握一维和二维数组的定义、赋值和输入输出2、掌握字符数组和字符串数组的使用3、掌握与数组有关的排序算法二、实验内容1、已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
(习题7.4)2、将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1。
要求改为1,4,5,6,8。
(习题7.5)3、如下程序是按选择法对数组中的n个元素按从小到大的顺序排序,请对程序中的错误进行改正,使其正常运行。
#include#define N 20void main(){int a[N]={9,6,8,3,-1};int i,m;printf("before sort:");for(i=0;i<m;i++)< p="">printf("%d",a[i]);printf("\n");{ int i,j,t,p;for(j=0;j<m-1;j++)< p="">{ p=j;for(i=j;i<m;i++)< p="">if(a[i]<a[p]) after="" p="" sort:");<="">for(i=0;i<m;i++)< p="">printf("%d",a[i]);printf("\n");}三、实验步骤与过程第一┆范文网整理该文章,版权归原作者、原出处所有...四、程序调试记录</m;i++)<></a[p]) ></m;i++)<></m-1;j++)<></m;i++)<>。
关于数组的实验报告
关于数组的实验报告实验目的:1. 理解数组的概念和用法;2. 掌握数组的创建、初始化、赋值、访问等操作;3. 学会应用数组解决问题。
实验内容:1. 数组的定义数组是一种数据类型,它是由一系列元素组成的数据结构。
这些元素可以是同一种数据类型,也可以是不同的数据类型。
数组是在程序中连续存储的,可以通过单个变量名访问。
数组可以用于存储多个值,以便可以轻松地在程序中进行操作,而不需要单独操作每个值。
2. 数组的创建和初始化在 C++ 中,可以通过声明一个数组变量和指定其大小来创建数组。
数组的大小必须是常量或字面值。
下面是一个示例创建一个存储整数的数组:```int myArray[5];```数组 myArray 有五个元素,每个元素都是一个整数。
在创建数组时,可以通过初始化设置数组中的初始值。
可以将所有元素初始化为 0:```int myArray[5] = {0, 0, 0, 0, 0};```也可以仅指定一部分元素的值,并且未指定元素的值将自动为零:```int myArray[5] = {1, 2, 3};```3. 数组的访问和修改可以通过使用下标或索引访问和修改数组中的元素。
数组的第一个元素的下标为 0,第二个元素的下标为 1,以此类推。
要访问 myArray 数组的第三个元素:```int x = myArray[2];cout << x << endl; // 输出 3```也可以通过下标修改数组中的元素的值:```myArray[0] = 10;cout << myArray[0] << endl; // 输出 10```4. 数组的遍历可以使用 for 循环对数组进行遍历。
遍历 myArray 数组:```for (int i=0; i<5; i++) {cout << myArray[i] << endl;}```这将打印出数组中的所有元素。
结构数组实验报告
一、实验目的1. 理解结构体的概念及其在C语言中的定义和使用方法。
2. 掌握结构体数组的概念和操作,包括结构体数组的声明、初始化和访问。
3. 通过实际操作,加深对结构体数组在实际问题中的应用理解。
二、实验内容本次实验主要围绕结构体数组进行,具体内容包括:1. 定义一个学生结构体,包含学生的姓名、学号、年龄和成绩等字段。
2. 创建一个学生结构体数组,用于存储多个学生的信息。
3. 编写程序,实现以下功能:- 向结构体数组中添加学生信息。
- 根据学号查找学生信息。
- 按成绩对学生信息进行排序。
- 输出所有学生信息。
三、实验步骤1. 定义学生结构体:```ctypedef struct {char name[50];int id;int age;float score;} Student;```2. 创建学生结构体数组:```cStudent students[10]; // 假设最多存储10个学生信息```3. 向结构体数组中添加学生信息:```cvoid addStudent(Student s, char name, int id, int age, float score) { strcpy(s->name, name);s->id = id;s->age = age;s->score = score;}```4. 根据学号查找学生信息:```cStudent findStudentById(Student students, int size, int id) {for (int i = 0; i < size; i++) {if (students[i].id == id) {return &students[i];}}return NULL;}```5. 按成绩对学生信息进行排序(使用冒泡排序算法):```cvoid sortStudentsByScore(Student students, int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (students[j].score > students[j + 1].score) {Student temp = students[j];students[j] = students[j + 1];students[j + 1] = temp;}}}}```6. 输出所有学生信息:```cvoid printStudents(Student students, int size) {for (int i = 0; i < size; i++) {printf("Name: %s, ID: %d, Age: %d, Score: %.2f\n",students[i].name, students[i].id, students[i].age, students[i].score); }}```四、实验结果通过以上步骤,我们实现了一个简单的学生信息管理系统。
C语言实验报告《数组》实验报告
C语言实验报告《数组》实验报告实验目的本次实验的主要目的是了解C语言中数组的概念、用法和操作,掌握如何定义和使用数组。
通过练习编写具有一定复杂度的数组相关程序,加深对C语言数组的理解和应用。
实验内容1. 数组的定义与初始化在C语言中,数组是一组具有相同类型的数据在内存中连续存储,通过数组下标访问每个元素。
数组的定义形式为:type name[size],其中type为数组元素的类型,name为数组名,size为数组大小(元素个数)。
数组的初始化可以在定义时或之后进行。
定义时,可以使用下标逐个指定每个元素的值,形如type name[size] = {val0, val1, ...};也可以只指定部分元素,剩余元素的值为默认值(0或NULL),形如type name[size] = {val0,val1, ...}。
之后初始化则可以使用数组下标逐个赋值,或使用循环语句给整个数组赋值。
例如,下面是一个整型数组的定义和初始化:int arr[5] = {1,2,3}; //arr[0] = 1, arr[1] = 2, arr[2] = 3, arr[3] = 0, arr[4] = 0;for(int i=0; i<5; i++){arr[i] = i; //arr[0] = 0, arr[1] = 1, arr[2] = 2, arr[3] = 3, arr[4] = 4;}2. 多维数组除了一维数组,C语言还支持多维数组。
多维数组是指一个数组中每个元素又是一个数组,形成了二维、三维甚至更高维度的数组。
多维数组的定义与一维数组类似,只是需要在type后面加上多个方括号,每个方括号内表示该维度的大小。
例如,定义一个二维数组:int matrix[2][3] = {{1,2,3},{4,5,6}}; //matrix[0][0] = 1, matrix[0] [1] = 2, ..., matrix[1][2] = 6多维数组的初始化可以像一维数组一样,在定义时指定每个元素的值,或在之后使用嵌套循环赋值。
C语言实验报告(数组)
C语⾔实验报告(数组)C程序设计实验报告实验项⽬:7.3.1练习1 冒泡排序法7.3.1练习2 选择排序法7.3.2练习1 杨辉三⾓(等腰)7.3.2练习2 给定年⽉⽇,将其转换成这⼀年的第⼏天输出7.3.3 判断回⽂数姓名:熊晓东实验地点:家实验时间:2020.5.24⼀、实验⽬的与要求1、掌握⼀维和多维数组的定义和数组元素的引⽤⽅法。
2、了解⼀维和多维数组初始化的⽅法。
3、学习⼀维和多维数组的基本算法。
4、掌握字符数组的定义、初始化⽅法及其元素的引⽤⽅法。
5、掌握C语⾔提供的对字符串进⾏处理的基本库函数。
⼆、实验内容1、实验练习:1问题的简单描述:⽤冒泡排序法实现,对⽤随机函数产⽣的10个整数按升序排列。
2实验代码:···#include<stdio.h>#include<stdlib.h>#include<time.h>void sort1(int s[],int n){int i,j;int temp;for(i=9;i>0;i++);for(j=0;j<i;j++)if(s[j]>s[j+1]){temp=s[j];s[j]=s[j+1];s[j+1]=temp;}}main(){int i,a[10];srand((unsigned int )time(NULL));printf("随机六⽣10个整数: \n");for(i=0;i<10;i++)a[i] =rand()%100;for(i=0;i<10;i++)printf("%d ",a[i]);printf("ln");sort1(a,10);printf("输出排序后的10个整数\n");for(i=0;i<10;i++)printf("%d ",a[i]);}3问题分析:⽆2、实验练习:1问题的简单描述:⽤选择排序法实现,对⽤随机函数产⽣的10个整数按升序排列。
C语言实验报告 数组
实验四数组学号:姓名:一、实验目的数组是有序数据的集合,通过实验上机掌握一维数组和二维数组的使用,以及字符串处理函数的使用方法。
掌握与数组有关的算法(特别是排序算法)。
二、实验内容按要求完成程序的设计和调试1.用选择法对10个整数排序。
10个整数用scanf函数输入。
2.有15个数存放在一个数组中,输入一个数要求用拆半查找法找出该书是数组中第几个元素的值,如果该数不在数组中,则输出无此数,要找的数用scanf函数输入。
三、实验要求1.掌握一维数组和二维数组的定义和正确使用方法。
2.熟悉在神魔情况下使用数组,并熟练运用数组来解决实际问题。
3.掌握字符数组的存储形式、字符串标志以及字符串函数的使用。
四、程序流程图五、实验源程序及注释#include<stdio.h>#define N 15int main(){int i,number,top,bott,mid,loca,a[N],flag=1,sign;char c;printf("enter data:\n");scanf("%d",&a[0]);i=1;while (i<N) //检查是否输入完毕{scanf("%d",&a[i]);if (a[i]>=a[i-1])i++;elseprintf("enter this data again:\n");}printf("\n");while (flag){printf("input the number you look for:");scanf("%d",&number); //20sign=0; //sign=0表示尚未找到top=0;bott=N-1; //bott是查找区间的末位if ((number>a[N-1])||(number<a[0]))loca=-1; //表示找不到while ((!sign)&&(top<=bott)){ mid=(bott+top)/2; //找出中间元素的下标if (number==a[mid]){ loca=mid;printf("Has found %d,its position is %d\n",number,loca+1); //30下标表示从零开始起,输出数的位置加一便于查找sign=1;}elseif (number<a[mid])bott=mid-1;elsetop=mid+1;}if(!sign||(loca==-1))printf("can't find %d\n",number); //40printf("continue or not?(Y/N)");scanf("%c",&c);if ((c=='n')||(c=='N'))flag=0; //flag为变量开关,控制程序是否结束}return 0;}实验小结1.本次实验我基本掌握了数组的算法,练习了折半寻找法和选择法排列数据。
实 验 报 告(数组)
return 0;
}
程序运行时输入:
76 85 90
64 57 80
73 65 66
84 71 72
程序运行时输出:
3.编写程序,生成并输出杨辉三角(10行)。杨辉三角的特点是第一列和对角线数字为1,其余元素a[i][j]满足a[i][j]=a[i-1][j-1]+a[i-1][j]。
}
return 0;
}
程序运行时输入:
2.设某班有4个学生,每个学生选修了三门课,算并显示以下信息:
(1)每个学生的总成绩。
(2)每门课的平均成绩。
(3)所有学生总成绩的平均值。
【输入】4个学生三门课的成绩。
【输出】以二维表格形式输出学生成绩信息和计算结果。
1
1 1
1 2 1
1 3 3 1
.
.
.
程序代码:
#include "stdio.h"
int main()
{ int i,j,n=0,a[17][17]={0};
while(n<1 || n>16)
{printf("请输入杨辉三角形的行数:");
scanf("%d",&n); }
for(i=0;i<n;i++)
printf("%6d\n",sum);
}
for(b=0;b<3;b++)
{int s=0;
for(k=0;k<4;k++)
{s=s+c[k][b];
m+=c[k][b];}
数组实验实验报告
printf("%s\n",a);
return 0;
}
void strncat(char s[],char t[],int n)
{
int i=0,j;
while(s[i++]);
for(j=0;j<n&&t[j];)
s[i++]=t[j++];
s[i]='\0';
}
4.程序设计
for(j=0;j<6-i;j++)
if(ACM[j].grade>ACM[j+1].grade)
t=ACM[j],ACM[j]=ACM[j+1],ACM[j+1]=t;
printf("now the list is:\nnபைடு நூலகம்me\tgrade\n");
for(k=0,m=0;m<=6&&k<=6;k++,m++)
malloc(sizeof(struct students));
printf("the original list is:\nname\tgrade\n");
for(m=0;m<=6;m++)
printf("%s\t%d\n",ACM[m].name,ACM[m].grade);
for(i=0;i<6;i++)
scanf("%d",&n);
if(n>=-32768&&n<=32767)
数组实验实训报告
一、实验目的本次实验旨在通过实践操作,让学生掌握数组的基本概念、定义、使用方法以及在实际编程中的应用。
通过实验,使学生能够熟练运用数组解决实际问题,提高编程能力。
二、实验内容1. 数组的定义与初始化2. 数组元素的访问与修改3. 数组元素的遍历4. 数组元素的排序5. 数组的应用实例三、实验步骤1. 数组的定义与初始化(1)定义一维数组```cint a[5];```(2)定义二维数组```cint b[3][4];```(3)初始化数组```cint c[3] = {1, 2, 3};```2. 数组元素的访问与修改```c// 访问数组元素int d = a[2];// 修改数组元素a[2] = 10;```3. 数组元素的遍历```c// 遍历一维数组for (int i = 0; i < 5; i++) {printf("%d ", a[i]);}// 遍历二维数组for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) { printf("%d ", b[i][j]); }printf("\n");}```4. 数组元素的排序(1)冒泡排序```cvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}```(2)选择排序```cvoid selectionSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {int min_idx = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}int temp = arr[min_idx];arr[min_idx] = arr[i];arr[i] = temp;}}```5. 数组的应用实例(1)计算数组中元素的最大值和最小值```cint max = arr[0];int min = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}```(2)计算数组中元素的平均值```cint sum = 0;for (int i = 0; i < n; i++) {sum += arr[i];}double avg = (double)sum / n;```四、实验总结通过本次实验,我们学习了数组的基本概念、定义、使用方法以及在实际编程中的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告_实验7_数组(学号_姓名)
一、实验目的:
1、理解数组的作用、特点;
2、掌握一维数组、二维的定义、引用、初始化,能够与循环结合实现批量数据处理(如输入、输出,比较大小,交换等);
3、掌握字符数组、字符串的使用;
4、熟悉打擂台等典型算法。
二、实验内容
1、(基础题)有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。
使用一维数组编程实现功能:计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。
如下图所示:
程序代码:
#include<stdio.h>
int main()
{
int i;
int f[20]={1,2,3};
for(i=3;i<20;i++)
f[i]=f[i-1]+f[i-2]+f[i-3];//计算数列的值
for(i=19;i>=0;i--)
{
//每行输出5个数据
printf("%10d",f[i]);
if(i%5==0)printf("\n");
}
printf("\n\n");
return0;
}
2、(基础题)青年歌手大奖赛,有7名评委进行打分,分数取值范围:0.0~10.0,试编程实现如下功能:从键盘输入7位评委给某一选手的评分,之后计算、输出该选手的平均得分(计算规则:去掉一个最高分和一个最低分,求出剩余5个得分的平均值)。
如下图所示:
(提示:使用一维数组来保存7位评委的给分,先计算所有评委给分总和,并找到最高分、最低分,然后用给分总和-最高分-最低分,再除5得到选手的平均得分,最后输出。
)
程序代码:
#include<stdio.h>
#define N7
int main()
{
double score[N];
double max,min,sum,aver;
int i;
printf("请输入%d位评委的给分:\n",N);
for(i=0;i<N;i++)
scanf("%lf",&score[i]);
max=min=sum=score[0];
for(i=1;i<N;i++)
{
if(max<score[i])
max=score[i];
if(min>score[i])
min=score[i];
sum=sum+score[i];
}
sum=sum-max-min;
aver=sum/(N-2);
printf("\n去掉一个最高分:%.4f,去掉一个最低分:%.4f\n\n",max,min);
printf("该选手的最后得分是:%.4f\n\n",aver);
return0;
}
3、(基础题)计算矩阵之和:
先输出这两个矩阵,再输出求和后矩阵。
(提示:矩阵之和是对应元素相加,可用二维数组实现)
程序代码:
#include<stdio.h>
int main()
{
int a[3][4]={{3,0,4,5},{6,2,1,7},{4,1,5,8}};
int b[3][4]={{1,4,0,3},{2,5,1,6},{9,3,6,0}};
int c[3][4];
int i,j;
printf("array a:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",a[i][j]);//12
}
printf("\n");//3
}
printf("\narray b:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
//c矩阵各元素的值
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\narray a+b:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
return0;
}
4、(基础题)输入一个字符串,请编程统计其中的字母、数字、空格(含制表符)、标点符号的个数并输出。
如下图所示:
(提示:在教材的p385-386中有字符和字符串函数,可以直接引用。
如isalpha()判断字母函数、isdigit()判断数字函数、isspace()判断空格函数、ispunct()判断标点函数等)
程序代码:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
char str[201];
int i;
int a[4]={0};//定义4个统计变量,初始值为0
printf("请输入一个长度不超过200的字符串:");
gets(str);
for(i=0;i<strlen(str);i++)
{
if(isalpha(str[i])!=0)
a[0]++;
else if(isdigit(str[i]))
a[1]++;
else if(isspace(str[i]))
a[2]++;
else if(ispunct(str[i]))
a[3]++;
}
printf("该字符串的字母个数、数字个数、空格个数、标点个数分别为:");
for(i=0;i<4;i++)
printf("%d",a[i]);
return0;
}
5、(提高题)已知学生成绩如下表,要求用二维数组保存学生成绩,并计算每个学生的平均成绩以及各门课程的平均成绩。
程序运行效果如下图所示:
#include<stdio.h>
#define M4
#define N3
int main()
{
float sc[M][N];
int Row,Col;//定义行,列两个控制变量
float average_stu[M]={0.0};//存放每个学生的平均成绩
float average_sc[N]={0.0};//存放每门课程的平均成绩
printf("请输入4个学生3门课程的成绩:");
for(Row=0;Row<M;Row++)
for(Col=0;Col<N;Col++)
scanf("%f",&sc[Row][Col]);
printf("\n已输入的学生成绩:\n");
for(Row=0;Row<M;Row++)
{
for(Col=0;Col<N;Col++)
printf("%.2lf\t",sc[Row][Col]);
printf("\n");
}
//计算每个学生的平均成绩
for(Row=0;Row<M;Row++)
{
for(Col=0;Col<N;Col++)
average_stu[Row]+=sc[Row][Col];
average_stu[Row]/=N;
}
//计算每门课程的平均成绩
for(Col=0;Col<N;Col++)
{
for(Row=0;Row<M;Row++)
average_sc[Col]+=sc[Row][Col];
average_sc[Col]/=M;
}
//输出每个学生的平均成绩
for(Row=0;Row<M;Row++)
printf("第%d个学生的平均成绩
为:%.2lf\n",Row+1,average_stu[Row]);
printf("\n");
//输出每门课程的平均成绩
for(Col=0;Col<N;Col++)
printf("第%d门课程的平均成绩
为:%.2lf\n",Col+1,average_sc[Col]);
printf("\n");
return0;
}
(注:可编辑下载,若有不当之处,请指正,谢谢!)。