高级语言程序设计实验5_数组(完美运行版)

合集下载

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语言实验五实验报告——数组一、实验目的: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语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

实验五 数组应用程序设计

实验五 数组应用程序设计

实验五常用控件程序设计(4个学时)一、实验目的1.掌握单选按钮、复选按钮、框架、列表框、组合框、时钟和滚动条的属性、事件和方法。

2.明确常用内部控件的功能,熟练使用“属性”窗口设置属性。

3.掌握在常用内部控件的事件过程中编写程序代码。

二、实验内容1. 设计一个程序运用单选按钮、复选框和框架对文本框中文本的颜色、字号和效果进行设置。

要求:文本的颜色可以选择红色、绿色和蓝色。

文本的字号可以选择12、18、24号,效果可以选择删除线和下划线。

当文本框中输入文字后,单击某个按钮,文本框中的文字将按所选择的选项进行设置。

(参考上机指导P6,第一题)1)代码设计如下Private Sub Check1_Click()If Check1.V alue = 1 ThenText1.FontStrikethru = TrueElseText1.FontStrikethru = FalseEnd IfEnd SubPrivate Sub Check2_Click()If Check2.V alue = 1 ThenText1.FontUnderline = TrueElseText1.FontUnderline = FalseEnd IfEnd SubPrivate Sub Option1_Click()Text1.ForeColor = &HFF&End SubPrivate Sub Option2_Click()Text1.ForeColor = &H8000&End SubPrivate Sub Option3_Click()Text1.ForeColor = &HFF0000End SubPrivate Sub Option4_Click()Text1.FontSize = 12End SubPrivate Sub Option5_Click()Text1.FontSize = 18End SubPrivate Sub Option6_Click()Text1.FontSize = 24End Sub2)运行后的结果(将运行结果的界面截下来粘贴在下面)3)调试过程记录(错误情况及改正方法,不得少于三条)(1)对删除线2. 编写一个为组合框中添加或删除内容的程序。

高级语言实验报告

高级语言实验报告

《高级语言》实验报告实验:数组程序设计目的与要求1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法。

内容与步骤:1、对于输入的n个整数,先进行升序排序,然后进行二分查找。

(HLOJ 8005)@一维数组的输入:int n,a[1000];cin>>n;for(int i1=0;i1<n;i1++)cin>>a[i1];@升序:for(int i=0;i<n-1;i++){int pos=i;for(int j=i+1;j<n;j++){if(a[pos]>a[j])pos=j;}swap(a[i],a[pos]);}@二分查找及二维数组的输出:int cnt=0;for(int m=0;m<x;m++){int begin=0,end=n-1;int mid=(begin+end)/2;int t=mid;for(int k=0;k<t;k++){mid=(begin+end)/2;if(b[m]==a[mid]){if(cnt>0)cout<<””;cnt++;cout<<mid+1;break;}else if(b[m]>a[mid])begin=mid+1;elseend=mid-1;if(k>=t){if(cnt>0)cout<<””;cnt++;cout<<”0”;}}}cout<<endl;2、如果矩阵A中存在这样的一个元素A[i][j]满足下列条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。

编写一个程序计算出矩阵A的马鞍点的值。

(HLOJ 1208)@二维数组输入同时对每行每列的最值赋初值:int i,j,m,n,x[101][101];cin>>m>>n;int max[101],min[101];for(i=0;i<m;i++){for(j=0;j<n;j++)cin>>x[i][j];min[i]=x[i][0];max[i]=x[0][i];}@查找每行每列的最值:for(i=0;i<m;i++){for(j=0;j<n;j++){if(x[i][j]<min[i])min[i]=x[i][j];if(x[i][j]>max[j])max[j]=x[i][j];}}@判断元素x[i][j]是不是马鞍点,对马鞍点个数赋初值0:int z=0;for(i=0;i<m;i++){for(j=0;j<n;j++){if(max[i]==min[j]){cout<<min[j]<<endl;z++;} }}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语言还支持多维数组。

高级语言程序设计实验5_数组(完美运行版)

高级语言程序设计实验5_数组(完美运行版)

⾼级语⾔程序设计实验5_数组(完美运⾏版)《⾼级语⾔程序设计》实验报告实验序号:5 实验项⽬:数组附源程序清单:1. #includemain(){int a[100],b[100],x[100],i,j=0,k,l=0;printf("请输⼊数组x的个数:");scanf("%d",&k);printf("请输⼊数组x中的整数,⽤空格隔开:");for(i=0;iscanf("%d",&x[i]);for(i=0;i{if(x[i]>0){a[j]=x[i];j++;}else if(x[i]<0){b[l]=x[i];l++;printf("数组a:");for(i=0;iprintf("\t%d",a[i]);printf("\n数组b:");for(i=0;iprintf("\t%d",b[i]);printf("\n");}2.#include#includeint main(){int array[1000];int i=0, iter=0;for(i=0;i<1000;i++) array[i]=i+1;array[0]=0;iter=1;while(iter<1000){if(array[iter]!=0)for(i=iter+1;i<1000;i++) {if( array[i]%array[iter]==0) array[i]=0;}iter++;}for(i=0;i<1000;i++)if(array[i]!=0)printf("%d\t",array[i]); printf("\n");}main(){char a[100];int i,j=0;printf("输⼊⼀串测试字符:\n");scanf("%s",&a);for(i=0;i{if(!(a[i]>='0' && a[i]<='9')){a[j]=a[i];j++;}}printf("输出字符串为:%s",a);printf("\n");}4. #include#define N 10main(){int a[N]={10,2,8,22,16,4,10,6,14,20},b[N],i,j;for(j=1;;j++){for(i=9;i>0;i--){if(a[i]%2==0&&a[i-1]%2==0) b[i-1]=a[i-1]/2+a[i]/2;else if(a[i]%2==0&&a[i-1]%2!=0) b[i-1]=(a[i-1]+1)/2+a[i]/2; else b[i-1]=(a[i-1]+1)/2+(a[i]+1)/2;}if(a[0]%2==0&&a[9]%2==0) b[9]=a[9]/2+a[0]/2;else if(a[0]%2==0&&a[9]%2!=0) b[9]=(a[9]+1)/2+a[0]/2; else b[9]=(a[9]+1)/2+(a[0]+1)/2;for(i=0;i<10;i++)if(a[i]==a[i+1]) continue;else i=11;}if(i==9){printf("需要调整%d次\n",j);printf("每个⼈各有%d块糖\n",a[0]); break;}}}5. #includemain(){int n,m,k,a[2][10],i=0;printf("请输⼊第⼀个数字:\n");for(n=0;n<10;n++)scanf("%d",&a[0][n]);getchar();}printf("请输⼊第⼆个数字:\n");for(m=0;m<10;m++){scanf("%d",&a[1][m]);getchar();}for(k=0;k<10;k++){if(a[0][k]>a[1][k]){printf("第⼀个数字较⼤.\n"); break;printf("第⼆个数字较⼤.\n"); break;}else if(a[0][k]=a[1][k])i++;}if(i==9)printf("两数字相等.\n");}6. #include "stdio.h"void main(){int sum=0,a[5][5],i,j;printf("请输⼊5⾏5列矩阵数字:\n"); for(i=0;i<5;i++){for(j=0;j<5;j++){scanf("%d",&a[i][j]);}}for(i=0;i<5;i++){sum+=a[0][i];}for(i=0;i<5;i++){sum+=a[i][0];}for(i=0;i<5;i++){sum+=a[4][i];sum+=a[i][4];}sum=sum-a[0][0]-a[0][4]-a[4][0]-a[4][4]; printf("最外圈元素之和为%d\n",sum);}7. #include#include#define N 3main(){int a[N][N],i,j,k=0,score=0;srand(time(0));while(getchar()==121){i=getchar();for(i=0;i{for(j=0;j{a[i][j]=rand()%3;if(a[i][j]==0) printf("\1");else if(a[i][j]==1) printf("*");else printf("#");}printf("\n");}{for(i=0;i{if(a[i][0]==a[i][1] && a[i][1]==a[i][2]) score++; if(a[0][i]==a[1][i] && a[1][i]==a[2][i]) score++; }if(k==2) {printf("你的得分是:%d.\n",score);break; }else k++;}}8. 附加题:#include#includemain(){char a[100],b[100];char str1[100],str2[100];scanf("%s%s",str1,str2);strcpy(a,strlen(str1)strcpy(b,strlen(str1)>strlen(str2)?str1:str2); printf("a = %s\n",a);printf("b = %s\n",b);}附加2:#include"stdio.h"#define N 100main(){int a[N][N]={0},b,c,i,j;printf("请输⼊3到39间的奇数:\n");scanf("%d",&c);if(0{b=c/2;for(i=0;i{for(j=0;jif (i-j==b) a[i][j]=1;if (j-i==b) a[i][j]=1;if (i+j==b*3) a[i][j]=1;}}for(i=0;i{for(j=0;j{printf("%d ",a[i][j]);}printf("\n");}}else printf("错误输⼊,请输⼊3到39间的奇数。

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语言实验五数组

实验五数组
实验目的:
1、熟练掌握一维数组、二维数组的定义、赋值和输入输出方法;
2、熟练掌握字符数组和字符串函数的使用;
3、掌握与数组有关的常用算法(如查找、排序等)。

实验内容:
1. 实现用选择法对n个整数的排序,按从小到大的顺序。

2.有n个整数,使其前面各数顺序向后移动m(m<=n)个位置,最后的m个数变成最前面的m个数,且移动的元素之间的相对位置不变。

3. 编程实现:输入4行5列的矩阵,输出其中最大的那个元素的值,以及其所在的行号和列号。

4. 编写一个程序,将一个3*4的矩阵转置。

5. 编程实现:输入一行文字,求出其中大写字母、小写字母、空格、数字及其他字符各有
多少。

6. 编写一程序,将两个字符串连接起来,要求不用strcat函数。

7.译密码。

为使电文保密,往往按照一定规律将其转换成密码,收报人再按约定的规律将其译回原文。

一种明文向密文转换的规则是:将字母A变成F,a变成f,即变成其后的5个字母,W变成B,X变成C,Y变成D,Z变成E。

例如,”China”变成了”Hmnsf”,请编写程序实现上述的加密功能。

(很多实验内容都是书上的,请参看书上程序,但一定要自己看懂,不要只抄袭)。

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;}```运行程序,输入不同的目标值,查看查找和修改的结果。

高级语言程序设计实验报告5

高级语言程序设计实验报告5
if(strcmp(str1,str2)>=0)
Cat (str1,str2);
else
Cat (str2,str1);
}
void Convert (char *p)
{strupr(p);
puts(p);
}
void Cat (char *p1, char *p2)
{
//char a[40];
int i,length=strlen(p2);
#include<stdio.h>
#include<string.h>
void Convert (char *p);
void Cat (char *p1, char *p2);
void main()
{
char str1[]="china";
char str2[50];
gets(str2);
Convert (str1);
高级语言程序设计实验报告
班级:65姓名:马大鹏学号:********
课程名称
高级语言程序设计
实验项目
初识VC++6.0上机环境
及顺序结构编程练习
实验项目类型
验证
演示
综合
设计
指导教师
李养群
成绩
一、实验目的
(1)、掌握字符串的定义、使(2)、掌握常用字符串函数的使用。
void fun(char *str)
{
int i,j;
for(i=0,j=0;str[i]!='\0';i++)
{
if(str[i]!=' '){ str[j]=str[i];j++;}

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

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

一、实验项目名称数组二、实验目的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语言实验报告6《数组》

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");}四、结果分析.(一)(二)。

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、程序四找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该行上最小。

高级语言程序设计(C语言)实验报告参考模板

高级语言程序设计(C语言)实验报告参考模板

高级语言程序设计(C语言)实验报告1实验目的:(1)熟练掌握if,if-else语句,利用if语句实现分支选择结构;(2)熟练掌握for语句格式及使用方法;(3)掌握C函数的定义方法,函数的调用方法,参数说明以及返回值;(4)掌握一维数组的定义、引用及应用;2实验内容:编写一个primeNun(int x)函数,判断十个数中哪个是素数。

要求:①定义一个十个元素的一位数组,数组由键盘输入;②函数类型为空值(void),调用primeNun(int x)函数后,在函数中输出十个数中的素数;③运行程序,检查是否正确。

3算法描述(可用流程图)Step1:输入10个整数;Step2:引用函数primeNum(int x),依此判断十个数是否为素数;Step3:输出十个数中的素数。

4源程序(要求注释)#include <stdio.h>#include <math.h>int primeNum(int n) /*判断输入数字是否是素数的函数*/{int i,k,m;m=0;if (n!=0) /*排除数字0*/k=(int)sqrt(n)+1;for (i=2;i<=k;i++)if (n%i==0)m=m+1;if(m==0)return 1; /*如果是素数返回1*/elsereturn 0; /*若不是素数返回0*/}main (){int a[10],i; /*定义一个十个元素的一维数组*/printf("please input 10 numbers:");for (i=0;i<10;i++){scanf("%d",&a[i]);} /*输入十个数*/printf("The prime number:\n");for (i=0;i<10;i++){if (1==primeNum(a[i])) /*调用primeNum(int x)函数,判断是否为素数*/printf ("%d\n",a[i]); /*输出是素数的数*/}}5测试数据第一组:1 2 3 4 5 6 7 8 99 0;第二组:3 4 5 6 7 8 9 0 3 2;第三组:23 21 34 56 78 90 3 2 1 06运行结果第一组:1 3 5 7;第二组:3 5 7 3;第三组:23 3 1;7调试过程出现的问题及解决方法①、首先是语法、符号的错误,比如%打成了/;break是终止整个程序的操作;②、int i,k,m;m=0;if (n==0)return 0;elsek=(int)sqrt(n)+1;for (i=2;i<=k;i++)这是原来编写的函数部分,忽略了n=0的情况,所以加了一个判断语句;③、for (i=0;i<10;i++){scanf("%d",&a[i]);} /*输入十个数*/printf("The prime number:\n");for (i=0;i<10;i++){if (1==primeNum(a[i]))用了一个for语句也可以运行出来:main (){int a[10],i;printf("please input 10 numbers:");for (i=0;i<10;i++){scanf("%d",&a[i]);if (1==primeNum(a[i]))printf ("The prime number:%d\n",a[i]);}但是每一个输出的数前面都有“The prime number:”影响美观,所以用了两个for。

高级语言程序设计实验-答案

高级语言程序设计实验-答案

r,把b保存到a中,并把余数r保存到b中,重复上述过程,
直到b为0,a中的数即为最大公约数。)
退出
实验四
13、我国古代数学家张丘建在《算经》一书中曾提出过著名
的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五; 鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、
雏各几何?请编写C程序,解决“百钱买百鸡”问题。
赏我一粒麦子,第2个小格赏我两粒,第3个小格赏我四粒,
以后每一小格都比前一小格的麦粒数增加一倍,只要把棋盘 上的64个小格全部按这样的方法得到的麦粒都赏赐给我,
退出
实验四
我就心满意足了。”舍罕王听了达依尔的这个“小小”的要
求,想都没想就满口答应下来。
如果1立方米麦粒数约1.42e8粒,国王能兑现他的许诺吗?
是X;X说他的妈妈是C;C说Z是他的孩子。主持人听后知道
他们在开玩笑,全是假话。请编程分析出正确的母子关系。
退出
高等学校精品资源共享课程(省级) 省级教学成果一等奖建设教材
第5章 函数及其应用
揭安全
jieanquan@ 江西师范大学计算机信息工程学院
实验5
实验目的:
(1)理解系统函数调用的执行过程 (2)掌握函数的定义与调用方法 (3)理解嵌套与递归函数的执行过程,能够正确应用递归 法求解递归问题 (4)理解模块化程序设计的基本思想,并能根据实际问题
采用自顶向上或自顶向下的方法进行问题求解
退出
实验五
1、编写一个函数int sum(int n),求1+2+3+…+n的和作
为函数的返回结果,并编写main函数进行测试。
2、设计函数bool isSxh(int n)判断整数n是否是水仙花数,

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语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

数组程序实验报告

数组程序实验报告

一、实验目的1. 理解数组的概念和基本操作。

2. 掌握数组的创建、初始化、赋值、遍历、排序等基本操作。

3. 通过实验加深对数组在实际问题中的应用。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 编译器:Visual Studio 2019三、实验内容1. 数组的创建与初始化2. 数组的赋值与遍历3. 数组的排序四、实验步骤1. 数组的创建与初始化(1)创建一个整型数组,名为array,大小为10。

```cppint array[10];```(2)使用循环对数组进行初始化。

```cppfor (int i = 0; i < 10; i++) {array[i] = i 2;}```2. 数组的赋值与遍历(1)将一个整型变量value赋值给数组的第一个元素。

```cppint value = 100;array[0] = value;```(2)使用循环遍历数组,打印每个元素的值。

```cppfor (int i = 0; i < 10; i++) {cout << "array[" << i << "] = " << array[i] << endl; }```3. 数组的排序(1)选择排序算法对数组进行排序。

```cppfor (int i = 0; i < 10 - 1; i++) {int minIndex = i;for (int j = i + 1; j < 10; j++) {if (array[j] < array[minIndex]) {minIndex = j;}}int temp = array[i];array[i] = array[minIndex];array[minIndex] = temp;}```(2)打印排序后的数组。

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。

例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。

参考答案:includevoid main()double score[30]。

sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。

aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。

算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。

可利用两个下标变量i和XXX。

参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。

i++,j--)//逐一向中,交换。

直到已没有元素没交换t=a[i]。

a[i]=a[j]。

a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。

C实验报告5参考答案

C实验报告5参考答案

参考程序:
#include <stdio.h> main() { int i, sum=0; for(i=1; i<=100; i++)
if(i%10==8 || i/10==8) sum+=i; printf("sum=%d\n",sum); }
(2)编写程序,利用下列似公式计算e值,误差应小于10-5。程 序以文件名sy5_8.c保存。 … 该程序的运行结果: e=2.718279
平均分为:
参考程序:
#include <stdio.h> main() { int i=0 ; long n=1; float e=0, t=1; while(t>1e-5) { e+=t; i++; n*=i; t=1.0/n; } printf("e=%f\n",e); } (3)某学校有近千名学生,在操场上排队,若5人一行余2人,7人一 行余3人,3人一行余1人。编写程序,求该校的学生总人数。程序以文 件名sy5_9.c保存。
{ char x; x='z'; while(x!='a') { printf("%3d",x); x++; } while(x!='a'-1)或while(x>='a') printf("%3c",x); x- -;
} (3)下列程序的功能为:输入一个大写字母,打印出一个菱形。该 菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组 成,按此规律,直到字母A出现在第一行和最末行为止。纠正程序中存 在的错误,以实现其功能。程序以文件名sy5_3.c保存。例如,输入字母 D,打印出如下图形:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《高级语言程序设计》实验报告实验序号:5 实验项目:数组附源程序清单:1. #include <stdio.h>main(){int a[100],b[100],x[100],i,j=0,k,l=0;printf("请输入数组x的个数:");scanf("%d",&k);printf("请输入数组x中的整数,用空格隔开:");for(i=0;i<k;i++)scanf("%d",&x[i]);for(i=0;i<k;i++){if(x[i]>0){a[j]=x[i];j++;}else if(x[i]<0){b[l]=x[i];l++;}}printf("数组a:");for(i=0;i<j;i++)printf("\t%d",a[i]);printf("\n数组b:");for(i=0;i<l;i++)printf("\t%d",b[i]);printf("\n");}2.#include <stdio.h>#include <stdlib.h>int main(){int array[1000];int i=0, iter=0;for(i=0;i<1000;i++)array[i]=i+1;array[0]=0;iter=1;while(iter<1000){if(array[iter]!=0)for(i=iter+1;i<1000;i++){if( array[i]%array[iter]==0)array[i]=0;}iter++;}for(i=0;i<1000;i++)if(array[i]!=0)printf("%d\t",array[i]);printf("\n");}3.#include"stdio.h"#include"string.h"main(){char a[100];int i,j=0;printf("输入一串测试字符:\n");scanf("%s",&a);for(i=0;i<strlen(a);i++){if(!(a[i]>='0' && a[i]<='9')){a[j]=a[i];j++;}}printf("输出字符串为:%s",a);printf("\n");}4. #include <stdio.h>#define N 10main(){int a[N]={10,2,8,22,16,4,10,6,14,20},b[N],i,j;for(j=1;;j++){for(i=9;i>0;i--){if(a[i]%2==0&&a[i-1]%2==0) b[i-1]=a[i-1]/2+a[i]/2;else if(a[i]%2==0&&a[i-1]%2!=0) b[i-1]=(a[i-1]+1)/2+a[i]/2;else b[i-1]=(a[i-1]+1)/2+(a[i]+1)/2;}if(a[0]%2==0&&a[9]%2==0) b[9]=a[9]/2+a[0]/2;else if(a[0]%2==0&&a[9]%2!=0) b[9]=(a[9]+1)/2+a[0]/2;else b[9]=(a[9]+1)/2+(a[0]+1)/2;for(i=0;i<10;i++)a[i]=b[i];for(i=0;i<9;i++){if(a[i]==a[i+1]) continue;else i=11;}if(i==9){printf("需要调整%d次\n",j);printf("每个人各有%d块糖\n",a[0]);break;}}}5. #include <stdio.h>main(){int n,m,k,a[2][10],i=0;printf("请输入第一个数字:\n");for(n=0;n<10;n++)scanf("%d",&a[0][n]);getchar();}printf("请输入第二个数字:\n");for(m=0;m<10;m++){scanf("%d",&a[1][m]);getchar();}for(k=0;k<10;k++){if(a[0][k]>a[1][k]){printf("第一个数字较大.\n");break;}else if(a[0][k]<a[1][k]){printf("第二个数字较大.\n");break;}else if(a[0][k]=a[1][k])i++;}if(i==9)printf("两数字相等.\n");}6. #include "stdio.h"void main(){int sum=0,a[5][5],i,j;printf("请输入5行5列矩阵数字:\n");for(i=0;i<5;i++){for(j=0;j<5;j++){scanf("%d",&a[i][j]);}}for(i=0;i<5;i++){sum+=a[0][i];}for(i=0;i<5;i++){sum+=a[i][0];}for(i=0;i<5;i++){sum+=a[4][i];}for(i=0;i<5;i++){sum+=a[i][4];}sum=sum-a[0][0]-a[0][4]-a[4][0]-a[4][4];printf("最外圈元素之和为%d\n",sum);}7. #include<stdio.h>#include<stdlib.h>#define N 3main(){int a[N][N],i,j,k=0,score=0;srand(time(0));while(getchar()==121){i=getchar();for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%3;if(a[i][j]==0) printf("\1");else if(a[i][j]==1) printf("*");else printf("#");}printf("\n");}{for(i=0;i<N;i++){if(a[i][0]==a[i][1] && a[i][1]==a[i][2]) score++;if(a[0][i]==a[1][i] && a[1][i]==a[2][i]) score++;}if(a[0][0]==a[1][1] && a[1][1]==a[2][2]) score++;if(a[0][2]==a[1][1] && a[1][1]==a[2][0]) score++;}if(k==2) {printf("你的得分是:%d.\n",score);break;}else k++;}}8. 附加题:#include<stdio.h>#include<string.h>main(){char a[100],b[100];char str1[100],str2[100];scanf("%s%s",str1,str2);strcpy(a,strlen(str1)<strlen(str2)?str1:str2);strcpy(b,strlen(str1)>strlen(str2)?str1:str2);printf("a = %s\n",a);printf("b = %s\n",b);}附加2:#include"stdio.h"#define N 100main(){int a[N][N]={0},b,c,i,j;printf("请输入3到39间的奇数:\n");scanf("%d",&c);if(0<c<39 && c%2==1){b=c/2;for(i=0;i<c;i++){for(j=0;j<c;j++){if (i+j==b) a[i][j]=1;if (i-j==b) a[i][j]=1;if (j-i==b) a[i][j]=1;if (i+j==b*3) a[i][j]=1;}}for(i=0;i<c;i++){for(j=0;j<c;j++){printf("%d ",a[i][j]);}printf("\n");}}else printf("错误输入,请输入3到39间的奇数。

\n"); }。

相关文档
最新文档