c语言实验7数组实验报告
- 格式:doc
- 大小:3.96 MB
- 文档页数:21
c语言数组实验报告C 语言数组实验报告一、实验目的1、深入理解 C 语言数组的概念和基本操作。
2、掌握数组的定义、初始化、遍历和访问。
3、学会使用数组解决实际问题,提高编程能力和逻辑思维能力。
二、实验环境1、操作系统:Windows 102、编译环境:Visual Studio 2019三、实验内容1、一维数组的操作定义一个包含 10 个整数的一维数组,并使用循环进行初始化。
编写程序,计算数组中所有元素的和与平均值,并输出结果。
实现对数组元素的遍历,输出每个元素的值。
2、二维数组的操作定义一个 3 行 4 列的二维整数数组,并进行初始化。
编写程序,计算二维数组中所有元素的总和。
打印出二维数组中每一行的元素值。
3、字符数组的操作定义一个字符数组,存储一个字符串。
实现字符串的输入和输出功能。
编写程序,统计字符串中字符的个数。
四、实验步骤(一)一维数组的操作1、定义并初始化一维数组```cint arr10 ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};```2、计算数组元素的和与平均值```cint sum = 0;float average;for (int i = 0; i < 10; i++){sum += arri;}average =(float)sum / 10;printf("数组元素的和为:%d\n", sum);printf("数组元素的平均值为:%2f\n", average);```3、遍历并输出数组元素```cfor (int i = 0; i < 10; i++){printf("%d ", arri);}printf("\n");```(二)二维数组的操作1、定义并初始化二维数组```cint arr234 ={{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};```2、计算二维数组元素的总和```cint sum2 = 0;for (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){sum2 += arr2ij;}}printf("二维数组元素的总和为:%d\n", sum2);```3、打印二维数组每一行的元素值```cfor (int i = 0; i < 3; i++){for (int j = 0; j < 4; j++){printf("%d ", arr2ij);}printf("\n");}```(三)字符数组的操作1、定义并初始化字符数组```cchar str100;```2、输入和输出字符串```cprintf("请输入一个字符串:");scanf("%s", str);printf("您输入的字符串是:%s\n", str);3、统计字符串中字符的个数```cint count = 0;for (int i = 0; stri!='\0'; i++){count++;}printf("字符串中字符的个数为:%d\n", count);```五、实验结果(一)一维数组的操作结果1、数组元素的和为:552、数组元素的平均值为:5503、数组元素的输出结果为:1 2 3 4 5 6 7 8 9 10(二)二维数组的操作结果1、二维数组元素的总和为:782、二维数组每一行的元素输出结果为:5 6 7 89 10 11 12(三)字符数组的操作结果1、输入字符串为:hello2、输出字符串为:hello3、字符串中字符的个数为:5六、实验分析(一)一维数组在对一维数组进行操作时,通过循环可以方便地对数组中的每个元素进行访问和处理。
C语言数组的应用实验报告实验报告:C语言数组的应用一、实验目的本实验旨在通过实际编程应用,加深对C语言数组的理解和掌握,学习并实践数组的基本操作技巧。
二、实验原理1.数组的概念和定义数组是相同数据类型的元素组成的有序集合。
在C语言中,数组是由相同数据类型的元素构成的元素集合,其元素个数是固定的。
数组一旦被定义后,其大小和结构就不能改变。
2.数组的声明和初始化声明数组需要指定数组的类型和数组名,可以同时初始化数组。
数组的初始化可以通过赋值的方式或者指定每个元素的值来完成。
3.数组的基本操作对数组的基本操作包括数组元素的读取和赋值、数组元素的运算、数组的遍历以及数组的排序等。
三、实验过程本实验中,我们将设计并编写几个示例程序来演示数组的应用。
实验示例1:计算数组元素和示例程序功能:从命令行输入一个整数数组,计算数组中所有元素的和。
```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, sum = 0;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);sum += arr[i];}printf("数组元素的和为:%d\n", sum);return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和一个变量sum,用于存储和;2. 通过for循环,逐个从命令行输入数组元素,并将每个元素的值累加到sum中;3. 输出数组元素的和sum。
实验示例2:数组元素排序示例程序功能:从命令行输入一个整数数组,将数组元素按照从小到大的顺序排序后输出。
```c#include <stdio.h>#define SIZE 5 // 定义数组大小int maiint i, j, temp;int arr[SIZE];printf("请输入%d个整数:\n", SIZE);for (i = 0; i < SIZE; i++)scanf("%d", &arr[i]);}//冒泡排序for (i = 0; i < SIZE-1; i++)for (j = 0; j < SIZE-1-i; j++)if (arr[j] > arr[j+1])temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("排序后的数组:\n");for (i = 0; i < SIZE; i++)printf("%d ", arr[i]);}printf("\n");return 0;```实验步骤:1. 声明一个大小为SIZE的整型数组arr和三个循环变量i、j、temp;2. 通过for循环,逐个从命令行输入数组元素;3. 使用冒泡排序算法,通过两个嵌套的for循环,比较相邻两个元素的大小并交换位置,最终得到按照升序排列的数组;4.输出排序后的数组。
c语言数组实验报告总结与思考本次实验主要是关于C语言数组的学习和实践。
在实验中,我们通过对数组的定义、初始化、赋值、遍历等操作,深入了解了数组的特点和使用方法。
同时,我们也学习了如何利用数组解决实际问题,提高了编程能力和实践能力。
在实验中,我们首先学习了数组的定义和初始化。
数组是一种存储相同类型数据的集合,可以通过下标访问数组中的元素。
在定义数组时,需要指定数组的类型和大小。
数组的初始化可以在定义时进行,也可以在后续操作中进行。
在初始化时,可以使用花括号{}来指定数组中的元素,也可以使用循环语句来进行赋值。
接着,我们学习了数组的赋值和遍历。
数组的赋值可以通过下标来进行,也可以使用循环语句来批量赋值。
数组的遍历可以使用循环语句来实现,可以按照顺序遍历数组中的元素,也可以根据需要跳过某些元素或者只遍历部分元素。
在实验中,我们还学习了如何利用数组解决实际问题。
例如,我们可以使用数组来存储学生的成绩,然后计算平均分、最高分、最低分等统计数据。
我们还可以使用数组来存储一组数据,然后进行排序、查找等操作。
通过这些实际问题的练习,我们不仅掌握了数组的使用方法,也提高了编程思维和解决问题的能力。
在实验中,我们还遇到了一些问题。
例如,数组越界访问会导致程序崩溃,因此需要注意数组下标的范围。
另外,数组的大小需要根据实际需求进行设置,过大会浪费内存,过小会导致数据丢失。
在实际应用中,我们需要根据具体情况进行调整。
总的来说,本次实验让我们深入了解了C语言数组的特点和使用方法,提高了编程能力和实践能力。
通过实际问题的练习,我们也掌握了如何利用数组解决实际问题的方法。
在今后的学习和工作中,我们将继续深入学习和应用数组,提高自己的编程水平和解决问题的能力。
c语言实验报告《数组》实验报告:数组引言在C语言中,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,并且可以通过下标来访问和操作这些数据。
在本次实验中,我们将通过一些简单的示例来掌握数组的基本用法和特性。
实验目的1. 了解数组的定义和初始化方法2. 掌握数组的访问和操作方式3. 熟悉数组在函数参数传递中的应用实验内容1. 数组的定义和初始化在C语言中,数组的定义方式为:`数据类型数组名[数组长度]`。
数组的初始化可以在定义的同时进行,也可以在之后的代码中进行。
示例代码:```cint arr1[5]; // 定义一个长度为5的整型数组int arr2[3] = {1, 2, 3}; // 定义一个长度为3的整型数组,并初始化为1, 2, 3```2. 数组的访问和操作数组的元素可以通过下标来访问和操作,下标从0开始计数。
示例代码:```cint arr[3] = {10, 20, 30};printf("%d\n", arr[0]); // 输出数组的第一个元素,即10arr[1] = 50; // 修改数组的第二个元素为50```3. 数组在函数参数传递中的应用数组可以作为函数的参数进行传递,从而实现对数组的操作和处理。
示例代码:```cvoid printArray(int arr[], int length) {for (int i = 0; i < length; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {1, 2, 3, 4, 5};printArray(arr, 5); // 调用函数打印数组return 0;}```实验结论通过本次实验,我们了解了数组的定义和初始化方法,掌握了数组的访问和操作方式,以及熟悉了数组在函数参数传递中的应用。
C语言程序设计实验报告数组实验目的:1. 了解数组的概念和使用方法;2. 掌握数组的定义和初始化;3. 掌握数组的遍历和元素访问;4. 掌握数组的排序算法和查找方法。
实验内容:一、数组的定义和初始化:1. 在C语言中,数组是一组有序、相同类型的元素的集合。
数组中的每个元素可以通过一个下标来标识,下标从0开始,最大为元素个数减1。
2. 定义数组的语法:类型名数组名[元素个数];3. 数组的初始化:可以在定义数组的同时进行初始化,也可以在定义后逐个赋值,还可以用花括号{}将初始值逐一列出进行初始化。
示例代码:```// 定义数组并初始化int a[5] = {5, 4, 3, 2, 1};// 定义数组后逐个赋值int b[3];b[0] = 1;b[1] = 2;b[2] = 3;// 使用花括号逐一初始化int c[] = {1, 2, 3, 4, 5};```二、数组的遍历和元素访问:1. 数组的遍历:可以使用for循环来遍历数组中的每个元素。
```int a[5] = {5, 4, 3, 2, 1};printf("%d", a[1]); // 输出4```三、数组的排序算法和查找方法:1. 排序算法:常用的数组排序算法有冒泡排序、插入排序和快速排序等。
```void bubbleSort(int a[], int n) {int i, j, temp;for (i = 0; i < n - 1; i++) {for (j = 0; j < n - i - 1; j++) {if (a[j] > a[j + 1]) {temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}```2. 查找方法:常用的数组查找方法有线性查找和二分查找等。
实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。
实验七数组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 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。
C语言数组的应用实验报告实验题目:C语言数组的应用一、实验目的:1.理解数组的定义和使用方法;2.学会利用数组实现基本算法;3.了解数组在实际应用中的常见场景及解决方法。
二、实验原理1.数组是一种数据结构,可以存储一组相同类型的数据;2.数组的元素可以通过索引(下标)来访问和修改;3.数组的长度必须在定义时确定,且长度不能改变。
三、实验内容本次实验共包含三个不同的实验题目,下面将逐一介绍每个实验的内容和具体步骤。
实验一:计算数组元素的和与平均值1.题目描述:编写一个程序,计算一个包含n个元素的整型数组中所有元素的和与平均值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明一个整型变量sum,并将其初值设为0;3) 利用for循环遍历数组arr,将每个元素累加到sum中;4) 计算平均值avg,将sum除以数组长度;5)打印输出数组的和与平均值;6)用多组数据进行测试,验证程序的正确性。
实验二:查找数组中的最大值和最小值1.题目描述:编写一个程序,找出一个包含n个元素的整型数组中的最大值和最小值;2.实验步骤:1) 定义一个整型数组arr,并给数组赋初值;2) 声明两个整型变量max和min,并将它们的初值设为数组的第一个元素;3) 利用for循环遍历数组arr,对比每个元素与max和min的大小,更新max和min的值;4)打印输出数组的最大值和最小值;5)用多组数据进行测试,验证程序的正确性。
实验三:矩阵转置1.题目描述:编写一个程序,对给定的二维数组进行转置操作;2.实验步骤:1) 定义一个二维整型数组matrix,并给数组赋初值;2) 声明一个与matrix规模相反的二维整型数组transpose,并将其所有元素初始化为0;3) 利用嵌套for循环遍历matrix数组,将每个元素的行列进行互换,并赋值给transpose数组;4) 打印输出转置后的transpose数组;5)用多组数据进行测试,验证程序的正确性。
实验报告课程名称程序设计实验项目名称数组班级与班级代码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语言实验报告《数组》《数组》实验报告实验目的:掌握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语言实验报告)实验目的1. 熟悉C语言数组的定义和使用;2. 掌握C语言数组的基本操作并能够自行编写数组程序。
实验内容本实验主要介绍C语言中的数组,包括数组的定义、数组的初始化、数组的访问、多维数组、指向数组的指针等内容。
数组是一种存储相同类型数据的集合,它有一个固定的大小,有序的排列在内存中,可以快速地访问其中的任何元素。
C语言中定义数组的格式如下:数据类型数组名[数组长度];其中,数据类型指数组中元素的数据类型,数组名是数组的标识符,数组长度指数组能够容纳的元素个数。
例如:int a[10]; // 定义一个长度为10的int类型数组achar b[5]; // 定义一个长度为5的char类型数组b2. 数组的初始化数组初始化是指在定义数组时给数组赋初始值,可以一次性给所有元素赋值,也可以逐个给元素赋值。
数组的初始化格式如下:其中,元素1,元素2,…表示数组中的初始值。
例如:如果在定义数组时没有为数组赋初值,系统会自动初始化数组的元素为0。
3. 数组的访问数组的访问是指通过数组下标访问数组中的元素。
数组下标从0开始,到数组长度减1结束,用中括号([])括起来,写在数组名称后面。
例如:int a[3] = {1,2,3};printf("%d,%d,%d",a[0],a[1],a[2]); //输出数组的所有元素4. 多维数组多维数组是指数组中的元素也是一个数组,可以看成把一个一维数组放在另一个一维数组的某个元素中。
多维数组的定义和访问与一维数组类似,但需要指定多维数组的长度。
例如:int a[2][3] = {{1,2,3},{4,5,6}}; //定义一个2行3列的二维数组aprintf("%d,%d,%d\n",a[0][0],a[0][1],a[0][2]); //访问数组a的第一行元素printf("%d,%d,%d",a[1][0],a[1][1],a[1][2]); //访问数组a的第二行元素5. 指向数组的指针指针是一种特殊的变量,它存储的是一个内存地址。
C语言实验报告《数组》
学号:__________姓名:__________班级:__________日期:__________
指导教师:__________成绩:__________
实验三数组
一、实验目的
1、掌握一维和二维数组的定义、赋值和输入输出
2、掌握字符数组和字符串数组的使用
3、掌握与数组有关的排序算法
二、实验内容
1、已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
(习题7.4)
2、将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1。
要求改为1,4,5,6,8。
(习题7.5)
3、如下程序是按选择法对数组中的n个元素按从小到大的顺序排序,请对程序中的错误进行改正,使其正常运行。
#include
#defineN20
voidmain()
{
inta[N]={9,6,8,3,-1}; inti,m;
printf(“beforesort:”); for(i=0;i。
c语言数组实验报告实验题目:C语言数组的使用实验目的:1. 熟悉数组的定义和使用方法。
2. 掌握数组的变量类型、初始化、存储和使用。
3. 通过实验加深对C语言数组的理解。
实验内容:1. 数组的定义和使用方法;2. 数组的初始化和赋值;3. 数组的下标越界和溢出问题及解决方法;4. 数组作为函数参数的使用。
实验步骤:1. 数组的定义和使用方法C语言中的数组是一组具有相同数据类型的数据,它们在内存中占用连续的地址空间。
在使用数组时,需要先定义数组并分配内存,然后使用下标访问数组中的数据。
数组的定义格式如下:数据类型数组名[数组长度];例如:int arr[5]; 定义一个包含5个元素的int类型数组使用数组时,可以使用下标访问数组中的数据,下标从0开始,格式如下:数组名[下标]例如:arr[0] = 1; 给数组第一个元素赋值为12. 数组的初始化和赋值数组的初始化是在定义数组时为其中的元素赋初值。
数组可以使用花括号{}来初始化,也可以只初始化部分元素,未初始化的元素会自动赋为0。
例如:int arr1[3] = {1, 2, 3}; 定义一个包含3个元素的int类型数组,并初始化为1,2,3int arr2[3] = {0}; 定义一个包含3个元素的int类型数组,并全部初始化为0 int arr3[3]; 定义一个包含3个元素的int类型数组,未初始化将会包含任意值。
数组的赋值操作可以使用循环语句或者直接使用下标来进行,例如:for(int i=0; i<3; i++) {arr[i] = i+1; 给数组元素赋值为1,2,3}3. 数组的下标越界和溢出问题及解决方法数组在使用时需要注意下标越界和溢出的问题。
下标越界指使用的下标超出了数组的范围,会导致程序异常或者崩溃。
溢出则指数组的容量不足,存储的数据会覆盖其他的内存空间,同样会导致程序异常或者崩溃。
为了避免这些问题,在使用数组时需要确保下标不超过数组范围,以及数组容量足够大。
c 实验报告7C 实验报告7实验目的:通过C语言编程实现对数组的排序和查找功能。
实验设备:计算机、C语言编程环境实验原理:数组是一组连续存储的相同数据类型的元素,可以通过下标来访问数组中的元素。
排序是将数组中的元素按照一定的顺序重新排列,查找是在数组中寻找指定的元素。
实验步骤:1. 编写C语言程序,实现对数组的排序功能。
利用冒泡排序、快速排序或其他排序算法对数组进行排序,使数组中的元素按照从小到大或从大到小的顺序排列。
2. 编写C语言程序,实现对数组的查找功能。
利用线性查找、二分查找或其他查找算法在数组中寻找指定的元素,并输出该元素的位置或提示未找到。
3. 编译并运行程序,测试排序和查找功能的正确性和效率。
实验结果与分析:经过实验,我们成功地实现了对数组的排序和查找功能。
通过对不同大小的数组进行排序和查找操作,我们发现排序算法的效率对于数组的大小有一定的影响,而查找算法的效率则受到排序后数组的影响较大。
因此,在实际应用中,需要根据具体情况选择合适的排序和查找算法。
实验总结:通过本次实验,我们深入了解了C语言中数组的排序和查找操作,掌握了不同的排序和查找算法,并通过实验验证了它们的正确性和效率。
这对我们进一步提高编程能力和解决实际问题具有重要意义。
实验中遇到的问题和解决方法:在实验过程中,我们遇到了一些问题,如排序算法的选择、查找算法的实现等。
我们通过查阅资料、与老师和同学讨论等方式,最终解决了这些问题,并得以顺利完成实验。
下一步工作展望:在今后的学习和实践中,我们将继续深入研究和应用C语言中的排序和查找算法,探索更多的优化方法和技巧,提高程序的效率和性能,为解决实际问题提供更好的支持。
通过本次实验,我们不仅学到了实际编程技能,还培养了解决问题的能力和团队合作精神,为我们今后的学习和工作打下了坚实的基础。
c语言数组实验报告C语言数组实验报告引言:C语言是一种广泛应用于软件开发领域的编程语言,而数组则是C语言中常用的数据结构之一。
本实验报告旨在介绍数组在C语言中的基本概念、用法以及实际应用。
一、数组的定义和声明数组是一种由相同类型的元素组成的数据结构,可以通过一个共同的名字和索引来访问其中的元素。
在C语言中,数组的定义和声明通常包括两个步骤:确定数组的类型和大小,并为其分配内存空间。
二、数组的初始化数组的初始化是指在声明数组的同时为其赋初值。
C语言提供了多种初始化数组的方式,如直接初始化、循环初始化等。
通过初始化,可以为数组的元素赋予初始值,方便后续的操作和使用。
三、数组的访问和操作通过数组名和索引,可以访问和操作数组中的元素。
在C语言中,数组的索引从0开始,因此第一个元素的索引为0,第二个元素的索引为1,以此类推。
可以使用赋值操作符(=)来修改数组中的元素值,也可以使用循环结构对数组进行遍历和操作。
四、多维数组除了一维数组,C语言还支持多维数组的定义和使用。
多维数组是指包含多个维度的数组,可以理解为数组的数组。
通过多维数组,可以更灵活地表示和处理复杂的数据结构和问题。
五、数组的应用举例1. 数组的排序:通过对数组元素进行比较和交换,可以实现对数组的排序操作,如冒泡排序、快速排序等。
2. 数组的搜索:通过遍历数组,可以实现对数组中特定元素的搜索操作,如线性搜索、二分搜索等。
3. 数组的统计:通过遍历数组并进行统计,可以实现对数组中元素的求和、求平均值等操作。
4. 数组的矩阵运算:通过多维数组,可以实现对矩阵的加法、减法、乘法等运算。
结论:通过本次实验,我们深入了解了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语言指针实现数组的基本操作,如排序,调整等,进一步加深对数组的认识,为以后深入学习编程能力打下坚实基础。
1. 采用数组作为示例,使用C语言编程实现数组排序,并编写程序分析排序过程中的时间复杂度。
2. 编写程序以实现数组调整,即根据一个给定的条件,将数组中的一部分向右移动,将另外一部分向左移动,并分析调整过程中的时间复杂度。
### 三、程序代码首先编写程序来实现数组的排序,使用冒泡法进行排序,程序代码如下:```c#include<stdio.h>#define N 12//冒泡排序算法void BubbleSort(int a[],int n){int i,j;int temp;for(i=0;i< n-1;i++)for(j=0;j< n-i-1;j++)//如果第j位大于第j+1位,则进行位置交换if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}### 调整// 将小于5的数放到数组的左边,大于等于5的数放到右边 int MinToLeft(int array[], int N){int i = 0;int j = N - 1;while (i<j){// 找右边大于5的while (array[j] >= 5 && i<j)j--;// 找左边小于5的while (array[i] < 5 && i<j)i++;// 左边比右边大则交换if (i<j){int t = array[i];array[i] = array[j];array[j] = t;}}return i;}### 四、时间复杂度数组排序是在数据量很大的情况下也能维持O(n2)时间复杂度,其中n是要排序数组中元素的个数。
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 实验报告数组C 实验报告数组引言:在计算机科学领域中,数组是一种常见的数据结构,用于存储和操作一系列相同类型的数据。
在C语言中,数组是一种非常重要的数据类型,它可以存储多个相同类型的元素,并通过索引访问这些元素。
本实验报告将探讨C语言中数组的特性、用法和一些常见的问题。
一、数组的定义和初始化在C语言中,数组的定义需要指定元素的类型和数组的大小。
例如,int类型的数组可以定义为:int arr[5]; 这意味着我们创建了一个包含5个整数元素的数组。
数组的索引从0开始,因此可以使用arr[0]到arr[4]来访问这些元素。
数组的初始化可以在定义时进行,也可以在后续的代码中进行。
例如,我们可以使用以下方式初始化上述的整数数组:int arr[5] = {1, 2, 3, 4, 5};这样,数组arr的第一个元素为1,第二个元素为2,以此类推。
二、数组的访问和操作通过索引,我们可以访问数组中的特定元素。
例如,要访问数组arr的第一个元素,可以使用arr[0]。
我们还可以对数组进行赋值操作,例如:arr[1] = 10; 这将把数组arr的第二个元素的值设置为10。
除了访问和赋值,数组还支持一些常见的操作,如求和、平均值等。
例如,我们可以编写一个函数来计算数组中所有元素的和:int sum(int arr[], int size) {int total = 0;for (int i = 0; i < size; i++) {total += arr[i];}return total;}三、数组的长度和越界访问在C语言中,数组的长度是固定的,一旦定义后就无法改变。
因此,在使用数组时,我们需要确保不会越界访问。
例如,如果数组arr的长度为5,那么我们只能使用arr[0]到arr[4]的索引进行访问,使用arr[5]将导致越界错误。
为了避免越界访问,我们可以使用循环结构来遍历数组,并在访问前检查索引是否有效。
实验四数组学号:姓名:一、实验目的数组是有序数据的集合,通过实验上机掌握一维数组和二维数组的使用,以及字符串处理函数的使用方法。
掌握与数组有关的算法(特别是排序算法)。
二、实验内容按要求完成程序的设计和调试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.本次实验我基本掌握了数组的算法,练习了折半寻找法和选择法排列数据。
实验报告课程名称程序设计实验项目名称数组班级与班级代码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编译系统自动根据初值个数来决定数组长度。
○2由于数组元素的下标可以是变量,因此数组的操作一般用循环实现。
上机题3 程序实现:从键盘输入5个数,输出最大、最小元素的值以及它们的下标。
将程序补充完整并上机调试。
实验内容:用循环结构对数组进行输入并求出最大最小值及下标#include<stdio.h>main(){int i,j,k,max,min;int a[5];for(i=0;i<5;i++)scanf("%d",&a[i]);max=min=a[0];i=k=0;for(i=0;i<5;i++){if(max<a[i]){max=a[i];j=i;}else if(max>a[i]){min=a[i];k=i;}}printf("max:a[%d]=%d,min:a[%d]=%d\n",j,max,k,min);}实验结果实验小结:比较最值时令第一个值为最大最小值,再用循环结构把最大值最小值赋给max min上机题4 输入并运行以下程序,分析程序运行结果。
实验内容:二维数组的加法#include<stdio.h>main(){int i,j;int a[3][2]={12,34,24,11,45,20};int b[3][2]={11,23,34,13,10,64};int c[3][2];for(i=0;i<=2;i++)for(j=0;j<=1;j++)c[i][j]=a[i][j]+b[i][j];for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%d+%d=%d ",a[i][j],b[i][j],c[i][j]); printf("\n");}}实验结果:相乘,在其程序的第9行和第12行的“+”改为“*”。
上机题5 程序实现:从键盘输入12个数,组成一个3行4列的二维数组并输出。
将程序补充完整并上机调试。
实验内容:对二维数组的输入输出#include<stdio.h>main(){int a[3][4];int i,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("The result is:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");}}实验小结运行程序后,从键盘输入的12个整数应以空格、Enter键或Tab 键分开。
分别输出各行最小值各列最大值实验过程:#include<stdio.h>main(){int a[3][4];int i,j,min ,max;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("The result is:\n");for(i=0;i<3;i++){for(j=0;j<4;j++){printf("%5d",a[i][j]);min=a[i][0];if(a[i][j]<a[i][0])min=a[i][j];} printf("\t%d\n",min);};for(j=0;j<4;j++){for(i=0;i<3;i++){max=a[0][j];if(a[i][j]>a[0][j])max=a[i][j];} printf("\t%d",max);}实验结果:实验小结:注意格式上机题6 输入并运行以下程序。
实验内容:字符串的输入与输出#include<stdio.h>main(){char a[7]="Foxpro";printf("%s\n");printf("%c\t%c\t%c\n",a[0],a[1],a[2]);}实验结果:实验小结:○1数组可以用字符串进行初始化“char a[7]=“Foxpro”;”,但是不能将字符串直接赋给数组,如“a[7]=”Foxpro;”和“a=”Foxpro;”都是错误的。
○2字符串的最后有串尾标志‘\o’,所以“char a[6]=”Foxpro”;”也是不正确的。
○3用“%s”格式输出指定地址开始的字符串,用“%c”格式输出数组元素的字符。
上机题7 输入并运行以下程序。
实验内容:利用二维数组对字符串进行输入输出#include<stdio.h>main(){int i;char a[][8]={"SQL","Foxpro","Unix","ASP"};for(i=0;i<=3;i++)printf("%s\n",a[i]);}实验小结:“char a[][8]={"SQL","Foxpro","Unix","ASP"};”定义了一个二维数组。
a[0]是一个字符串的串首地址,a[1]是第2个字符串的串首地址,a[i]为第i个字符串的串首地址。
因此,字符串输出时用“printf(“%s”,a[i] );”。
上机题8 输入并运行以下程序,分析程序运行结果。
实验内容:引用函数对数组进行运算#include<stdio.h>main(){int a[5]={1,2,3,4,5};int i;pr(a);for(i=0;i<5;i++)printf("%5d",a[i]);printf("\n");}pr(p)int p[];{int i;for(i=0;i<5;i++)p[i]=p[i]*p[i];}实验结果:实验小结:当形参为数组时,对应的实参为数组名,传递的是数组的首地址,此时实参数组与形参数组共享同一段内存单元,形参数组元素的改变会影响实参数组元素的改变。
上机题9编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序并输出。
自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。
实验内容:将数组反序并输出,实验步骤:#include<stdio.h>void antitone(int a[],int n);int b[5],n;int i;main(){ n=5;for(i=0;i<n;i++){scanf("%d",&b[i]);}antitone(b,5);}void antitone(int a[],int n){int i,t,c[5];for(i=0;i<n;i++){c[i]=a[n-i-1];printf("%d",c[i]);}}实验结果:实验小结:注意局部变量与全局变量作用域,数组的常量表达式必须是常量,格式必须对,还有对程序的了解。
上机题10已知某数列的前两项为2和3,其后每一项为其前两项之积。
分别用函数和数组实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?实验内容:从键盘输入一个整数x,判断并输出x最接近数列的第几项实验步骤:#include<stdio.h>#include<math.h>#define M 100int a[M]={2,3};int i,x,t;main(){for(i=0;i<98;i++)a[i+2]=a[i+1]+a[i];scanf("%d",&x);for(i=0;i<99;i++){if(fabs(a[i+1]-x)<fabs(a[i]-x))t=i+1;else t=i;if(x-a[i]<0)break;}printf("%d",t);}实验结果:实验小结:注意对输出时,不要相互赋值例如a【i+1】=a【i】,这样会使输出结果出现数组后几组数据的丢失,注意循环结构的结束循环的控制。
上机题11分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分。