c语言实验报告五 一维数组
- 格式:doc
- 大小:104.50 KB
- 文档页数:4
计算机基础课实验报告题目:《C语言程序设计》综合实训院系:电气及自动化工程学院专业年级:电气工程及其自动化2011025班学生姓名:吴天一学号:********2011年11月23日实验6 数组一、实验目的1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法(特别是排序算法)。
二、实验内容和步骤1、以下给定程序的功能是:求一维数组a中所有元素的平均值,结果保留两位小数。
例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9时,程序的输出应为:The aver is:9.10程序中有两处错误,错误都在提示行:/*******found*******/的下面一行。
请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!#include<conio.h>#include<stdio.h>void main(){ int a[10]={10,4,2,7,3,12,5,34,5,9},i;/*******found*******/int aver,s;/*******found*******/s=0;for(i=1;i<10;i++)s+=a[i];aver=s/i;printf("The aver is:%.2f\n",aver);}2、以下给定程序的功能是:求二维数组a中的最小值。
例如,当二维数组a中的元素为:4 2 347 3 125 6 5程序的输出应为:The min is:2.程序中有两处错误,错误都在提示行:/*******found*******/的下面一行。
请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!#include<conio.h>#include<stdio.h>void main(){ int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min;min=a[0][0];/*******found*******/for(i=1;i<3;i++)for(j=0;j<3;j++)if(min>a[i][j]){/*******found*******/min==a[i][j];}printf("The min is:%d\n",min);}3、在考生目录下,给定程序的功能是:在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10:在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。
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语言实验五实验报告——数组一、实验目的: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语言程序设计》实验报告实验序号:5 实验项目:数组学号姓名Debug 专业、班级实验地点指导教师实验时间一、实验目的及要求1、掌握一维数组和二维数组的定义、赋值、使用和输入输出方法;2、掌握字符数组和字符串的使用;二、实验设备(环境)及要求使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤1.用筛法求1~1000之间的素数。
eratosthenes筛法:1)利用数组存放这1000个数;2)挖掉第一个数1(令该数=0);3)2没被挖掉,挖掉后面所有2的倍数;4)3没被挖掉,挖掉后面所有3的倍数;5)4被挖掉,不执行任何操作;6)5没被挖掉,挖掉后面所有5的倍数;7)····直到最后一个数;8)剩下的非0数就是素数。
运行结构截图:2.编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串。
【算法提示】(1)定义一个一维字符数组;(2)输入一串测试字符;(3)依次判断数组中字符是否为数字(即>‘0’且<‘9’);(4)若是则将后面所有字符依次往前移一位;(5)输出整个字符串。
运行结构截图:3.输入若干个整数存放在一维数组中,根据此数组构造两个数组a和b,要求a中存放数组x中所有的正数,b中存放数组中所有的负数,0舍弃,最后分别输出数组a和b 。
运行结构截图:4.10个小孩围成一圈分糖,老师分给第1个孩子10块,第2个孩子2块,第3个孩子8块,第4个孩子22块,第5个孩子16块,第6个孩子4块,第7个孩子10块,第8个孩子6块,第9个孩子14块,第10个孩子20块,然后所有的小孩同时将自己手中的糖分一半给右边的小孩,糖块数为奇数的人可向老师再要一块。
问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖。
(注:第i个小朋友的右边是第i-1个小朋友,第1个小朋友的右边是第10个小朋友)运行结构截图:5.假设在2*10的二维数组中存放了数据,其中各行的元素构成一个整数,如第一行元素构成整数1234507000。
实验五数组一实验目的1 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2 掌握字符数组和字符串函数的使用;3 掌握与数组有关的算法(特别是排序算法)二实验内容1 程序功能:输入12个整数,按每行3个数输出,最后输出它们的平均值。
#include <stdio.h>#define N 12main(){ 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 12main(){ int i,a[N],av=0;for(i=0;i<N;i++) scanf("%d",&a[i]);for(i=0;i<N;i++){ printf("%d",a[i]);if((i+1)%3==0) printf("\n");}for(i=0;i<N;i++) av+=a[i];printf("av=%d\n",av/N);}运行结果如下图:2 选择排序(升序):最常用的排序方法除了冒泡排序外,还有选择排序。
【算法】n个数的选择排序的算法:⑴定义变量、输入n及数组a各元素⑵n个数排序要进行n-1遍以下是一遍排序(第i遍)的方法:①设最小数的下标k=i,则最小数为a[k]②从下标j=i+1的元素起,到最后一个元素(j=n-1),将a[j]与最小数a[k]比较,确定最小数的下标k③交换a[i]与最小数a[k]⑶输出已排序的n个数请根据上面的算法编写选择排序程序,并编辑运行、记录输入输出数据。
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 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。
一、实验项目名称数组二、实验目的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 163 5 9 10 3 5 9 108 11 14 16 1 2 3 415 2 7 6 15 2 7 6要求:(1)本题中所涉及到的循环都采用for语句。
(2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
《C程序设计》课程实验报告学院:班级:姓名:学号:实验设备:计算机1台实验日期:2011年3月1日实验项目名称一维数组实验目的掌握一维数组的定义、初始化,以及一维数组元素的下标法引用。
实验要求:掌握一维数组的定义、初始化,以及一维数组元素的下标法引用,并能编写简单程序。
实验内容(包括步骤):1.数组a中存放10个非0整数,编写程序,将数组a中的所有正数存放在数组的前面,负数存放在数组的后面。
要求:(1)数组元素值从键盘输入。
(2)用下标法。
2.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的前位。
要求:(1)数组元素值在程序中初始化。
(2)m的值从键盘输入。
(3)用下标法。
调试与结果测试:代码注释:5-1#include<stdio.h>int main(){int a[10];int i;for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<10;i++)if(a[i]>0)printf(" %d",a[i]);for(i=0;i<10;i++)if(a[i]<0)printf(" %d",a[i]);printf("\n");return 0;5-2#include<stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int m,n,r,i;printf("please input a number:\n");scanf("%d",&m);for(n=9;n>=0;n--)a[n+m]=a[n];for(r=m-1;r>=0;r--)a[r]=a[10+r];for(i=0;i<10;i++)printf("%d ",a[i]); printf("\n");return 0;}――――――――――――以下内容为教师填写―――――――――――――――教师评阅:成绩:良2011年月日。
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程序设计》课程实验报告
学院:班级:姓名:学号:
实验设备:计算机1台实验日期:2011年3月1日
实验项目名称一维数组
实验目的
掌握一维数组的定义、初始化,以及一维数组元素的下标法引用。
实验要求:
掌握一维数组的定义、初始化,以及一维数组元素的下标法引用,并能编写简单程序。
实验内容(包括步骤):
1.数组a中存放10个非0整数,编写程序,将数组a中的所有正数存放在数组的前面,负数存放在数组的后面。
要求:(1)数组元素值从键盘输入。
(2)用下标法。
2.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的前位。
要求:(1)数组元素值在程序中初始化。
(2)m的值从键盘输入。
(3)用下标法。
调试与结果测试:
代码注释:
5-1
#include<stdio.h>
int main()
{
int a[10];
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=0;i<10;i++)
if(a[i]>0)
printf(" %d",a[i]);
for(i=0;i<10;i++)
if(a[i]<0)
printf(" %d",a[i]);
printf("\n");
return 0;
5-2
#include<stdio.h>
int main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int m,n,r,i;
printf("please input a number:\n");
scanf("%d",&m);
for(n=9;n>=0;n--)
a[n+m]=a[n];
for(r=m-1;r>=0;r--)
a[r]=a[10+r];
for(i=0;i<10;i++)
printf("%d ",a[i]); printf("\n");
return 0;
}
――――――――――――以下内容为教师填写―――――――――――――――教师评阅:
成绩:良
2011年月日。