C语言程序设计实验报告-数组

合集下载

c语言数组实验报告

c语言数组实验报告

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语言实验报告《数组》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语言实验五实验报告——数组

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语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

C语言实验报告《数组》.doc

C语言实验报告《数组》.doc

《c语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:c语言实验报告本(数组函数)《c语言程序设计》实验报告2009~2010学年第二学期专业班级姓名学号任课教师计算机教学实验中心2010年 5 月《c语言程序设计》实验报告( 1 )学号:姓名:班级:成绩:任课教师签名:《c语言程序设计》实验报告( 2 )学号:姓名:班级:成绩:任课教师签名:篇三:c语言实验报告数组实验报告实验课程名称高级c语言程序设计实验项目名称数组年级 09 级专业数学学生姓名李军学号 0907010170理学院实验时间: 2010 年 4 月 22 日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。

二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。

三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。

五、实验中要节约水、电、气及其它消耗材料。

六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。

七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。

仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。

八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。

九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。

十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。

十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。

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语言程序设计实验报告 数组

C语言程序设计实验报告 数组

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. 查找方法:常用的数组查找方法有线性查找和二分查找等。

实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。

C语言实验报告数组

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 实验结论通过本次实验熟练的掌握一维数组、二维数组的定义、初始化和输入/输出方法以及字符数组和字符串函数的使用;还有就是掌握与数组有关的常用算法。

C语言实验报告数组

C语言实验报告数组

C语言实验报告数组实验目的:本实验旨在通过对C语言中数组的使用进行实践,加深对数组概念的理解,并掌握数组的声明、初始化和操作方法。

实验环境:操作系统:Windows 10编译器:Dev-C++ 5.11实验内容:1. 数组的声明和初始化在C语言中,数组是由相同类型的数据元素组成的集合。

声明数组时需要指定元素的类型和数组的名称,同时还可以指定数组的大小。

数组的初始化可以在声明时进行,也可以在后续的代码中进行。

示例代码:```c#include <stdio.h>int main() {int numbers[5]; // 声明一个包含5个整数的数组int i;// 初始化数组元素for (i = 0; i < 5; i++) {numbers[i] = i + 1;}// 输出数组元素for (i = 0; i < 5; i++) {printf("numbers[%d] = %d\n", i, numbers[i]);}return 0;}```2. 数组的访问和操作通过下标(索引)可以访问数组中的元素,数组的下标从0开始,依次递增。

我们可以使用循环结构遍历数组,对数组中的元素进行操作。

示例代码:```c#include <stdio.h>int main() {float temperatures[7]; // 声明一个包含7个浮点数的数组int i;// 输入一周每天的温度for (i = 0; i < 7; i++) {printf("请输入星期%d的温度:", i + 1);scanf("%f", &temperatures[i]);}// 输出一周每天的平均温度float sum = 0;for (i = 0; i < 7; i++) {sum += temperatures[i];}printf("一周的平均温度为:%.2f\n", sum / 7);return 0;}```3. 多维数组除了一维数组外,C语言还支持多维数组。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组实验五:数组实验目的:1.掌握数组的定义和使用;2.熟悉数组在函数中的传递;3.练习编写使用数组的程序。

实验原理:数组是一组相同类型的变量的集合,这些变量称为数组的元素。

数组的名字是一个指针常量,它存放的是数组首个元素的地址。

数组元素在内存中是连续存放的,可以通过下标访问每一个元素。

数组的定义:数组的定义格式为:数据类型数组名[数组长度];数组的初始化:数组可以在定义时进行初始化,也可以在定义之后通过赋值进行初始化。

数组作为函数参数:数组可以作为函数的形参进行传递,可以通过指针传递整个数组,也可以传递数组的部分元素。

实验步骤:1.编写一个程序,实现对学生成绩的管理。

要求如下:-使用一个数组保存学生的成绩;-能够动态添加学生的成绩,并显示添加成功的信息;-能够计算学生的平均成绩,并显示;-能够根据用户输入的学号查找对应学生的成绩,并显示。

2.编写一个程序,实现对一组整数进行排序。

要求如下:-首先自定义一个整数数组,数组元素个数为用户输入;-编写一个函数,实现对数组进行排序,要求使用选择排序算法;-在主函数中调用该函数,对数组进行排序后显示。

实验结果与分析:1.学生成绩管理程序运行结果如下:```-------学生成绩管理系统-------[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:90添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:85添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:2平均成绩为:87.5[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:3 [1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:4退出系统。

```2.整数排序程序运行结果如下:```-------整数排序-------请输入待排序的整数个数:6请输入第1个整数:5请输入第2个整数:3请输入第3个整数:9请输入第4个整数:2请输入第5个整数:7请输入第6个整数:1排序前的整数序列为:539271排序后的整数序列为:123579 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。

C语言实验报告《数组》

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语言数组实验报告C 语言数组实验报告一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的基本概念、使用方法以及常见的操作。

通过实际编程和调试,提高对数组的运用能力,为今后解决更复杂的程序设计问题打下坚实的基础。

二、实验环境操作系统:Windows 10编译器:Visual Studio 2019三、实验内容1、一维数组的定义、初始化和遍历定义一个包含整数的一维数组,如`int arr10;`使用初始化列表为数组赋值,例如`int arr5 ={1, 2, 3, 4, 5};`通过循环遍历数组,输出每个元素的值。

2、一维数组的查找和修改实现线性查找算法,在数组中查找特定的元素。

根据找到的元素位置,修改其值。

3、二维数组的定义、初始化和遍历定义二维数组,如`int arr234;`以不同的方式初始化二维数组,如按行初始化或整体初始化。

使用双重循环遍历二维数组。

4、二维数组的应用:矩阵运算实现两个矩阵的相加和相乘运算。

四、实验步骤1、一维数组的定义、初始化和遍历编写代码如下:```cinclude <stdioh>int main(){int arr10;int i;//初始化数组for (i = 0; i < 10; i++){arri = i + 1;}//遍历数组并输出for (i = 0; i < 10; i++){printf("%d ", arri);}return 0;}```编译并运行代码,观察输出结果,验证数组的初始化和遍历是否正确。

2、一维数组的查找和修改以下是实现线性查找并修改元素值的代码:```cinclude <stdioh>int main(){int arr5 ={10, 20, 30, 40, 50};int target = 30;int found = 0;int i;//查找元素for (i = 0; i < 5; i++){if (arri == target) {found = 1;break;}}if (found) {printf("找到元素%d,位于索引%d\n", target, i);arri = 100; //修改元素值} else {printf("未找到元素%d\n", target);}//输出修改后的数组for (i = 0; i < 5; i++){printf("%d ", arri);}return 0;}```运行程序,输入不同的目标值,查看查找和修改的结果。

数组的实验报告结论(3篇)

数组的实验报告结论(3篇)

第1篇一、实验目的本次实验旨在通过一系列的数组操作,验证数组的定义、创建、赋值、遍历、排序、查找等基本操作,掌握数组在实际编程中的应用,提高编程能力。

二、实验内容1. 数组的定义与创建通过定义数组变量,并使用不同的方式创建数组,如使用{}直接创建、使用new创建等,验证了数组的创建方法。

2. 数组的赋值通过给数组元素赋值,观察数组的实际内容,验证了数组的赋值操作。

3. 数组的遍历通过for循环、增强型for循环、foreach循环等不同方式遍历数组,验证了数组的遍历方法。

4. 数组的排序通过冒泡排序、选择排序、插入排序等算法对数组进行排序,验证了数组的排序操作。

5. 数组的查找通过顺序查找、二分查找等算法对数组进行查找,验证了数组的查找操作。

三、实验结果与分析1. 数组的定义与创建实验结果显示,通过定义数组变量,并使用不同的方式创建数组,均能成功创建数组。

在实际编程中,应根据具体需求选择合适的创建方式。

2. 数组的赋值实验结果显示,给数组元素赋值后,数组的内容发生了变化,验证了数组的赋值操作。

3. 数组的遍历实验结果显示,通过不同的遍历方式,均能成功遍历数组。

在实际编程中,应根据具体需求选择合适的遍历方式。

4. 数组的排序实验结果显示,通过冒泡排序、选择排序、插入排序等算法对数组进行排序,均能成功实现数组的排序。

在实际编程中,应根据具体需求选择合适的排序算法。

5. 数组的查找实验结果显示,通过顺序查找、二分查找等算法对数组进行查找,均能成功实现数组的查找。

在实际编程中,应根据具体需求选择合适的查找算法。

四、实验结论1. 数组是实际编程中常用的一种数据结构,具有丰富的操作方法。

2. 掌握数组的定义、创建、赋值、遍历、排序、查找等基本操作,有助于提高编程能力。

3. 在实际编程中,应根据具体需求选择合适的数组创建、遍历、排序、查找等方法,以提高编程效率和代码质量。

4. 本实验为后续学习其他数据结构和算法奠定了基础,有助于提高编程水平。

实验数组的实验报告

实验数组的实验报告

一、实验目的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. 通过定义和初始化一维数组,可以方便地存储和管理一系列具有相同数据类型的元素。

C语言实验报告《数组》_实验报告_

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++)<>。

C语言实验五实验报告-数组

C语言实验五实验报告-数组

C语言实验五实验报告-数组C 语言实验五实验报告数组一、实验目的本次实验旨在深入理解和掌握 C 语言中数组的概念、声明、初始化以及基本操作。

通过实际编写代码,熟练运用数组解决实际问题,提高编程能力和逻辑思维能力。

二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019三、实验内容1、数组的声明和初始化声明一维数组,如`int arr10;`。

初始化一维数组,包括全部初始化,如`int arr5 ={1, 2, 3, 4, 5};`,以及部分初始化,如`int arr5 ={1, 2};`。

声明二维数组,如`int arr34;`。

初始化二维数组,如`int arr23 ={{1, 2, 3},{4, 5, 6}};`。

2、数组元素的访问和操作使用下标访问数组元素,如`arr0` 。

对数组元素进行赋值和修改操作。

遍历数组,使用循环打印数组元素。

3、数组的应用实现数组元素的排序,如冒泡排序、选择排序等。

查找数组中的特定元素,如顺序查找、二分查找等。

四、实验步骤1、数组的声明和初始化打开 Visual Studio 2019,创建一个新的 C 语言项目。

在源文件中,编写以下代码来声明和初始化一维数组:```cinclude <stdioh>int main(){int arr110;int arr25 ={1, 2, 3, 4, 5};int arr35 ={1, 2};printf("未初始化的数组 arr1 的元素:\n");for (int i = 0; i < 10; i++){printf("%d ", arr1i);}printf("\n");printf("全部初始化的数组 arr2 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr2i);}printf("\n");printf("部分初始化的数组 arr3 的元素:\n");for (int i = 0; i < 5; i++){printf("%d ", arr3i);}printf("\n");return 0;}```编译并运行代码,观察输出结果,理解数组的声明和初始化方式。

C语言程序设计实验报告数组

C语言程序设计实验报告数组

C语言程序设计实验报告(数组)1实验目的(1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法;(2)熟练掌握字符数组和字符串函数的使用;(3)掌握与数组有关的常用算法(查找、排序等)。

2实验内容编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。

要求:1、不允许用strcat()和strlen()字符处理库函数;2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数strlen()计算并返回两个字符串的长度;3、调用函数catstr()连接两个字符串(将str2连接在str1后面);4、调用函数lenstr()计算并返回连接后字符串的长度;5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字符串及其长度。

.算法描述流程图 3catStr函数lenStr函数开始开始定义函数定义函数lenStr(char str[])catStr(char str1[],char str2[])i=0;声名变量并赋i,j声名变量i=0,j=0初值m[i]!='\0'str1[i]!='\0' 真假str2[j]!='\0'printf(%d,i);str1[i+j]=str2[j];i++str1[i+j]='\0';结i++,j+结束主函数开始声名变量s1[50]=shi,s2[50]=weiyu;调用函数lenStr();并输调用函数catStr()的s1,s2输出出连接后的字符串字符长度输出连接后字再次调用函符串的长lenStr(结束源程序4#include<stdio.h>#include<string.h>catStr(char str1[],char str2[]) void{ int i,j;for (i=0;str1[i]!='\0';i++);for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j];str1[i+j]='\0';}lenStr(char m[] ){int i;for (i=0;m[i]!='\0';i++);printf(%d,i); }void main(){char s1[50]=orever,s2[50]=more;printf(s1=%s,s2=%s,s1,s2);printf(\s1的长度:);lenStr(s1);printf(\s2的长度:);lenStr(s2);catStr(s1,s2);printf(\连接后的字符:);printf(%s\n,s1);牰湩晴尨连接后字符的长度:);lenStr(s1);printf(\);}5测试数据s1=forever, s2=more6运行结果7出现问题及解决方法在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。

c语言实验实验报告——数组

c语言实验实验报告——数组

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是要排序数组中元素的个数。

数组实验实训报告

数组实验实训报告

一、实验目的本次实验旨在通过实践操作,让学生掌握数组的基本概念、定义、使用方法以及在实际编程中的应用。

通过实验,使学生能够熟练运用数组解决实际问题,提高编程能力。

二、实验内容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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验项目名称
数组
二、实验目的
1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。

2.掌握字符数组与字符串的使用方法。

理解字符数组与其它数组的区别、理解字符串及其特点。

掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。

3.掌握与数组相关的算法,包括排序算法和查找算法等。

三、实验内容
进行有关数组的程序设计。

具体内容:
1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。

要求:
(1)数组为整型数组(10个元素)。

(2)使用scanf函数实现数组元素的输入。

在输入前给出必要的提示。

(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。

(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。

如果需要数组元素不断改变,应怎样修改程序?
2.编程实现:在给定的字符串中查找满足条件的第一个字符。

要求:
(1)字符串采用初始化的方式处理。

(2)通过scanf函数读入一个任意字符。

(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。

如果不存在该字符,则要给出相应的信息。

3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ⨯n),形成n ⨯n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。

例如:原始数据:n=4 结果数据:
1 2 3 4 8 11 14 16
3 5 9 10 3 5 9 10
8 11 14 16 1 2 3 4
15 2 7 6 15 2 7 6
要求:
(1)本题中所涉及到的循环都采用for语句。

(2)在输入/输出时进行必要的说明。

(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。

(4)输入一个n n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。

(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。

(6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。

(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。

4.编程实现“折半查找”的过程。

折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。

要求:
(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。

(2)用scanf函数输入一个要找的数。

(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。

如果该数不在数组中,则输出“无此数”信息。

(4)任意输入一些数据,检查程序的正确性。

(5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。

最后通过测试几组差别较大的数据检查程序的正确性。

(6)修改程序,改为函数调用的形式。

编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。

在主函数中输入数据(无序),调用上述函数,输出结果。

5.编程实现:三个学生、五门课程的成绩分别存放在4×6矩阵的前3×5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。

计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分。

输入/输出格式举例如下:Input(输入成绩):
65 87 68 56 78<cr>
83 94 67 85 91<cr>
71 75 69 84 89<cr>
Output(输出结果):
65 87 68 56 78 70.5
83 94 67 85 91 84.0
71 75 69 84 89 77.5
219.0 256.0 204.0 258.0 232.0 0 average:
73.0 85.3 68.0 86.0 77.3
要求:
(1)数组类型为实型,输入成绩由scanf函数实现。

(2)输出已输入的原始成绩数据(3×5)。

(3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4×6)。

(4)j计算单科平均成绩后输出。

6.编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。

编写函数cmpStr()用于判断两个字符串的大小。

要求:
(1)不允许使用字符处理库函数。

(2)在主函数以初始化的方式输入两个字符串str1、str2。

调用函数lenStr()计算字符串的长度。

(3)调用函数cmpStr()判断两个字符串的大小,如果str1大于等于str2,调用函数catStr()进行两个字符串的连接,将str1连接在str2后,否则,将str2连接在str1后,调用函数lenStr()统计连接后的字符串长度。

(4)在主函数中输出两个原始字符串和各自的长度以及处理后字符串及其长度。

四、实验步骤
在编程软件中写如以下代码:
一、
#include <stdio.h>
void main()
{
int a[10],i,j,k,max,min;
printf("请输入10个数:\n");
for (i=0;i<10;++i)
scanf("%d",&a[i]);
printf("原始数据:");
for (i=0;i<10;++i)
printf("%d ",a[i]);
printf("\n");
max=a[0];/*初始化max和min*/
min=a[0];
for (i=0;i<10;++i)
{
if (a[i]>=max)。

相关文档
最新文档