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语言中,数组的定义和声明非常简单。
我们可以通过以下方式来定义一个数组:```数据类型数组名[数组大小];```其中,数据类型表示数组中元素的类型,数组名是我们给数组起的名称,而数组大小则表示数组中元素的个数。
例如,我们可以定义一个包含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语言实验报告《数组》.doc
《c语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡篇二:c语言实验报告本(数组函数)《c语言程序设计》实验报告2009~2010学年第二学期专业班级姓名学号任课教师计算机教学实验中心2010年 5 月《c语言程序设计》实验报告( 1 )学号:姓名:班级:成绩:任课教师签名:《c语言程序设计》实验报告( 2 )学号:姓名:班级:成绩:任课教师签名:篇三:c语言实验报告数组实验报告实验课程名称高级c语言程序设计实验项目名称数组年级 09 级专业数学学生姓名李军学号 0907010170理学院实验时间: 2010 年 4 月 22 日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。
二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。
三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。
五、实验中要节约水、电、气及其它消耗材料。
六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。
七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。
仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。
八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。
九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。
十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。
十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。
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语言实验报告6 数组
成都工业学院·计算机工程学院《程序设计基础》实验报告1.实验目的(1)熟练掌握一维数组。
二维数组的定义,初始化和输入输出方法(2)熟练掌握字符数组和字符串函数的使用(3)掌握与数组有关的常用算法2.实验内容(1)在给定的字符串中查找指定的字符;要求:①字符串采用直接初始化的方式处理②通过scanf函数读入一个任意字符③在字符串中查找该字符,如果存在该字符,输入该字符在字符串中第一次出现的位置,如果在给定的字符串中不存在该字符,则给出相应的说明信息。
(2)首先输入一个大于2小于10的整数n,然后定义一个二维数组(n*n),初始化该函数,将数组中最大元素所在的行和最小函数所在的行对调要求:①n*n数组元素的值有scanf函数从键盘输入(假定最大值与最小值不在同一行上),然后输出该数组②查找最大值与最小值的所在行,将数组中最大元素所在的行和最小元素所在的行对调。
并输出对调后的数组③直观起见,数组按n行n列的方式输出④修改程序,对最大值与最小值可能出现的在一行上的情况进行处理(3)编程实现折半查找的过程折半查找的处理过程:在一个数据已排好序的数组中,首先比较要查找的值与数组中间的元素,如果二者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者数之比后者大,则要查找的数据必然在数组的后半部,此后的只需在数组的后半部继续进行折半查找。
要求:①设定一个整型数组存放20个元素,采用直接赋值的方法在程序中初始化该数组(数据已排序)②用scanf函数输入一个要查找的值③对查找的结果给出相应的说明,如果找到该数值,输出Found信息,并给出该数是数组中的第几个元素;如果该数值不在数组中,则输出Not found信息④修改程序,设定输入的数据是无序的,则先要对这些无序的数据进行排序,然后采用折半查找⑤修改程序,编写一个选择排序函数和一个查找函数对以排序的数据进行查找。
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. 查找方法:常用的数组查找方法有线性查找和二分查找等。
实验结果:本次实验主要学习了数组的定义、初始化、遍历、元素访问、排序算法和查找方法。
实验六 字符数组与数组的综合应用
实验六字符数组与数组的综合应用一、实验目的1.掌握字符数组和字符串函数的使用。
2.使用数组进行复杂程序的编写。
二、实验要求1.复习字符数组的定义、输入输出和常用的字符串函数。
2.在实验题目空白处编写源程序代码。
3.运行程序并记录运行结果。
4.总结实验过程中的错误和心得体会,写出实验总结。
5.对本次实验进行自评,在“实验得分”部分对每个实验题目的完成情况打分。
三、实验内容1. 下面程序的功能是对两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。
例如:输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。
#include <stdio.h>main(){ char str1[100],str2[100],c;int i,s;printf("Enter string 1: "); gets(str1);printf("Enter string 2: "); gets(str2);i=0;while((str1[i] = = str2[i] && str1[i]!= ))i++;s= ;printf("%d\n", s);}2. 编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。
不用strcpy函数。
复制时’\0’也要复制过去,’\0’后面的字符不复制。
程序代码:#include <stdio.h>main(){ char s1[80],s2[80];int i;printf("Input s2:");scanf("%s",s2);for(i=0;i<strlen(s2);i++)s1[i]=s2[i];printf("s1:%s\n",s1);}3. 输入若干个字符串(最多10个),求出每个字符串的长度,并打印最长字符串的内容。
C程序实验报告六 数组
实验6 数组1.实验目的、要求(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。
(2)掌握字符数组和字符串函数的使用。
(3)掌握与数组有关的算法(特别是排序算法)。
2.实验内容(1)编写程序:应用循环语句,输出九九乘法表。
编写程序如下:#include "stdio.h"main(){int i,j;for(i=1;i<10;i++)printf("%4d",i);printf("\n \n");for(i=1;i<=9;i++)for(j=1;j<=9;j++)printf((j==9)?"%4d\n":"%4d",i*j);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81分析:与自己预想结果相同(2)输入一个4×4的矩阵,编写程序,求出其中的最小值及其所在的行号和列号,同时求出对角线元素之和。
#include "stdio.h"void main(){int i,j,row=0,colum=0,min,sum;int a[4][4]={{1,2,3,4},{4,3,6,8},{2,-6,6,3},{0,6,4,7}};min=a[0][0];sum=0;for(i=0;i<=3;i++)for(j=0;j<=3;j++){i=j;sum=sum+a[i][j];}if(a[i][j]<min){min=a[i][j];row=i;colum=j;}printf("min=%d,row=%d,colum=%d,sum=%d\n",min,row,colum,sum);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:min=-6,row=2,colum=1,sum=17分析:与自己计算结果不同,回到程序中检查发现,错误的只计算了一个对角线之和,修改程序如下:#include "stdio.h"void main(){int i,j,row=0,colum=0,min,m,n,sum;int a[4][4]={{1,2,3,4},{4,3,6,8},{2,-6,6,3},{0,6,4,7}};min=a[0][0];m=a[0][0]+a[1][1]+a[2][2]+a[3][3];n=a[0][3]+a[1][2]+a[2][1]+a[3][0];sum=m+n;for(i=0;i<=3;i++)for(j=0;j<=3;j++)if(a[i][j]<min){min=a[i][j];row=i;colum=j;}printf("min=%d,row=%d,colum=%d,sum=%d\n",min,row,colum,sum);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:min=-6,row=2,colum=1,sum=21分析:先定义后计算(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语言程序设计》实验报告实验六使用指针的程序设计学号姓名一、实验目的1、掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、熟悉指针作为函数参数的定义和调用方法;4、能正确使用字符串的指针和指向字符串的指针变量。
二、实验内容1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。
#include <stdio.h>void main(){int *p1,*p2,*p;int a,b;printf("Input a b please");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b){ p=p1;p1=p2;p2=p;}printf("*p1=%d, *p2=%d\n",*p1,*p2);printf("a=%d, b=%d\n",a,b);}『运行结果:』输入1,2得:*p1=1,*p2=2a=1,b=2输入2,1得:*p1=1,*p2=2a=2,b=1输入56,123得:*p1=56,*p2=123a=56,b=1232.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。
请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。
#include <stdio.h>#define N 10void fun(int *a,int n,int *odd,int *even){int m;*odd=0; *even=0;for(m=0;m<n;m++)if(*(a+m)%2==0)*even+=*(a+m);else*odd+=*(a+m);}void main(){int a[N]={1,10,2,3,19,6},i,n=6,odd,even;printf("The original data is:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("The sum of odd numbers:%d\n",odd);printf("The sum of even number:%d\n",even);}『运行结果:』3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现删除字符串str中和字符ch相等所有字符,然后输出字符串str。
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;}```运行程序,输入不同的目标值,查看查找和修改的结果。
C语言实验报告6《数组》
嘉应学院计算机学院实验报告课程名称C语言程序设计实验名称数组实验地点指导老师实验时间提交时间班级姓名座号一、实验目的和要求(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法;(2)掌握字符数组和字符串函数的使用;(3)掌握与数组有关的算法(特别是排序算法)。
二、实验环境、内容和方法实验内容:(1)编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。
(2)从键盘输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。
实验方法:(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。
(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。
(三)根据实验内容,编译程序。
实验环境:Windows xp Visual C++6.0三、实验过程描述(一)#include<stdio.h>void main(){int i,a[10];int q=0,w=0,e=0;printf("输入十个数字,用空格隔开\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<=9;i++){if(a[i]<0) w++;else if(a[i]==0) e++;else q++;}printf("正数的个数:%d,负数的个数:%d,零的个数:%d\n",q,w,e); }(二)#include<stdio.h>void main(){int i,a[5];int max,min,b;printf("输入五个数字,用空格隔开\n");for(i=0;i<5;i++)scanf("%d",&a[i]);printf("\n");max=0,min=0;for(i=0;i<4;i++){b=i+1;if(a[max]>a[b]) ;else max=b;}for(i=0;i<4;i++){b=i+1;if(a[min]<a[b]) ;else min=b;}b=a[max];a[max]=a[min];a[min]=b;for(i=0;i<5;i++)printf("%d,",a[i]);printf("\n");}四、结果分析.(一)(二)。
实验数组的实验报告
一、实验目的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语言数组实验报告
序号输出数据描述
1num[i]3、程序源代码(填写程序调试正确后的代码)
#include <stdio.h>
int main()
{
int num[5]={1,2,3,4,5};/*
int i;
for(i=0;i<5;i++)/*
/*依次输出num[0]至num[4]*/ return 0;
char s []={
‘\t',
‘0',
‘\n',
‘}',
‘;'
J5
‘\n',
‘\',
‘/',
‘*'
‘\n',
/*(213lines deleted)*/
0
};
/*
*The string is a
*representation of the body
*of this program from'O'
#include <stdio.h>
int main()
{
int a[3][5];
int *adress;//
int i,j;
for(i=0;i<3;i++)//
{
printf("\n");
for(j=0;j<5;j++)//
{
定义并初始化adress
每行循环
每列循环
adress=&a[i][j];//
(1)
输入数据
序号
输入数据描述
数据类型
(1)
n,a[n]
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.了解编程环境的使⽤。
2.学会处理简单的错误,观察运⾏结果。
3.掌握基本的输⼊输出。
⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。
编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。
三、实验内容及步骤1.编程环境的使⽤。
(1)打开VisualC++6.0开发环境。
(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。
在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。
(3)添加C++源⽂件,输⼊⽂件名。
(4)打开编辑窗⼝,输⼊程序,保存。
(5)编译运⾏程序,找到其错误位置,改正错误。
2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。
3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。
四、思考问题1.如何使⽤不同的数据类型。
2.如何处理输⼊输出。
3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。
2. 掌握switch 的⽤法。
⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。
if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。
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是要排序数组中元素的个数。
c 实验报告数组
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
每行不一定是 80 个字符所以注意要用 strlen 来计算每行的字符数,再用循环语句来判 断字符的类型。
7.编程实现将给定的一个二维数组进行转置,即行列互换,并输出。 #include<stdio.h> main() {int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf("array a:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("%5d",a[i][j]);
9.编写一个程序,将字符数组 s2 中的全部字符复制到字符数组 s1 中。不用 strcpy 函数。复制时,‘\0’也要复制过去。 #include<stdio.h> #define M 20 #define N 20 main() {char s1[M],s2[N],i; printf("字符数组 s2:\n"); gets(s2); for(i=0;i<20;i++) { s1[i]=s2[i]; } printf("字符数组 s1:\n"); puts(s1);
b[j][i]=a[i][j]; } printf("\n"); } printf("array b:\n"); for(i=0;i<3;i++) {for(j=0;j<2;j++) printf("%5d",b[i][j]); printf("\n"); } }
8.编程序实现将两个字符串连接起来,不用 strcat 函数。 #include<stdio.h> main() {char a[20],b[20]; scanf("%s",a); scanf("%s",b); printf("ab 连接后=%s %s\n",a,b); }
printf("%lf",ave); }
3.从键盘输入 5 名同学的 C 语言成绩保存到数组中,求总分、平均分、最 高分、最低分并输出。 #include<stdio.h> #define N 5 main() {int i,a[N],s=0,min,max; float av; for(i=0;i<N;i++) {scanf("%d",&a[i]); s=s+a[i]; } min=a[0]; max=a[0]; av=s/N; for(i=1;i<N;i++) {if(min>a[i]) min=a[i]; else if(max<a[i]) max=a[i]; } printf("s=%d,av=%f,max=%d,min=%d",s,av,max,min); }
2.请对某班 50 名同学的姓名做从小到大的排序。 #include<stdio.h> #include<string.h> int main() { int i; char s[50][20],t[20]; printf("请输入五十个同学的名字:\n"); for(i=0;i<50;i++) scanf("%s",&s[i]); for(i=0;i<49;i++) { if(strcmp(s[i],s[i+1])>0) { strcpy(t,s[i]); strcpy(s[i],s[i+1]); strcpy(s[i+1],t); } } printf("排序后:"); for(i=0;i<50;i++) printf("%s ",s[i]); return 0; }
2.请编写程序,实现某大奖赛现场为一名选手打分,有 8 个评委,去掉一 个最低分和一个最高分的平均分为最终得分。(注:满分为 100,最低分为 0 分) #include<stdio.h> main() {int i,a[8],sum=0,max,min; double ave;
for(i=0;i<8;i++) {scanf("%d",&a[i]); sum=sum+a[i]; } max=a[0]; min=a[0]; for(i=1;i<8;i++) {if(max<a[i]) max=a[i]; else if(min>=a[i]) min=a[i]; } ave=(sum-max-min)/6.0;
if(a[i][j]<min1) min1=a[i][j]; sum=sum+a[i][j]; ave=(float)(sum/4.0); } printf("第%d 位同学最高成绩:max1=%d\n 第%d 位同学最低成绩:min1=%d\n 第%d 位同学成绩平均分:ave=%f\n",i+1,max1,i+1,min1,i+1,ave); sum=0,ave=0,max1=0,min1=100; } for(j=0;j<4;j++) { for(i=0;i<3;i++) { if(a[i][j]>max2) max2=a[i][j]; if(a[i][j]<min2) min2=a[i][j]; } printf(" 第 %d 课 程 最 高 分 max2=%d\n 第 %d 课 程 最 低 分 min2=%d\n",j+1,max2,j+1,min2); max2=0,min2=100; } return 0; }
printf("max=%d,row=%d,colum=%d\n",max,r,c);
}
6.2.2 程序设计
1.假设某班有 10 名学生,C 语言成绩分别为:65、75、45、80、90、60、 39、95、78、55。采用一维数组计算出平均分并输出。 #include<stdio.h> int main() {int sum=0,i,a[10]={65,75,45,80,90,60,39,95,78,55}; float ave; for(i=0;i<=9;i++) {sum+=a[i]; } ave=sum/10.0; printf("%f\n",ave); }
实验六 姓名: 学号:
数组
Hale Waihona Puke 1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用; 3.掌握与数组相关的算法,熟练应用排序、查找、求最大最小值等常用 实 算法进行求解实际问题的能力; 验 目 的
6.2.1 程序阅读
1.理解下面的程序,并在 VC++6.0 下调试下列错误程序,使之具有如下功 能:输入 12 个整数,按每行 3 个数输出这些整数,最后输出 12 个整数的平 均值。 #include <stdio.h> #define N 12 main() { int i,a[N],av; for(i=0;i<N;i++) scanf("%d",a[i]); for(i=0;i<N;i++) { printf("%d",a[i]); if(i%3= =0) printf("\n"); } for(i=0;i!=N;i++) av+=a[i]; printf("av=%f\N",av); } 上面给出的程序有错误和缺陷,请找出程序中的错误并改正。 #include<stdio.h> #define N 12 main() {int a[N],s=0,i; float av; for(i=1;i<=N;i++) {scanf("%d",&a[i]); s=s+a[i]; printf("%d,",a[i]); if(i%3==0) printf("\n"); }
{ int max,i,j,r,c; int a[M][N]={{1230,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=0; for(i=0;i<M;i++) for(j=0;j<N;j++) if(a[i][j]>max) { max=a[i][j]; r=i; c=j; }
要有调理的分步运行,先是每门同学的成绩,再是每门课程的成绩,此时就要注意 i 和 j 的运用。
6.有一篇文章,共有 3 行文字,每行有 80 个字符。要求分别统计出其中的 英文大写字母、小写字母、数字、空格以及其他字符的个数。
#include<stdio.h> #include<string.h> main() {int i,j,n1=0,n2=0,n3=0,n4=0,n5=0; char a[3][80]; for(i=0;i<3;i++) {gets(a[i]); for(j=0;j<strlen(a[i]);j++) { if(a[i][j]<='Z'&&'A'<=a[i][j]) n1++; else if(a[i][j]<='z'&&'a'<=a[i][j]) n2++; else if(a[i][j]<='9'&&a[i][j]>='0') n3++; else if(a[i][j]=' ') n4++; else n5++; } } printf("英文大写字母:%d\n",n1); printf("英文小写字母:%d\n",n2); printf("数字:%d\n",n3); printf("空格:%d\n",n4); printf("其他:%d\n",n5); }