大一C语言实验 5:一维数组
一维数组应用 c语言 精品教案

一维数组应用 c语言精品教案下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一维数组应用 C语言精品教案一维数组是 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语言实验报告五 一维数组

《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 语言数组实验报告一、实验目的本次实验旨在深入理解和掌握 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;}```运行程序,输入不同的目标值,查看查找和修改的结果。
实验五一维数组

(4)上述排序算法可用下列流程图表示
二.实验内容
【实验题1】程序改错:源程序用数组求Fibonacci数列前20项,但在带标记的代码行存在错误,请改正错误。源程序如下:
#include<stdio.h>
voidmain()
{int i, fib[20];
fib[1]= fib[2]= 1;//错误1
for(i=3; i<=20; i++)//错误2
【实验题4】程序填空:输入整数x,要求在给定的数组a中查找x,若在a中找到了x,删除之;如果x在数组a中不出现,输出提示信息“Not Found”.
提示:要删除数组元素a[k],将a[k+1]…a[n-1]各向前移动一位:a[i-1]= a[i] (i= k,…, n-1)
源程序:
#include<stdio.h>
n2时先将ai本身看成最小即令ki并将ak与后面的元素ajji1i2n1一一比较如果ajak则更新k找出对应于下标i的最小元素ak后交换ai与ak
上机实验
一.目的要求
1.掌握一维数组的基本概念,定义和初始化方法;
2.掌握一维数组的基本操作,如输入、输出、引用数组元素;
3.掌握与数组有关的基本算法,如寻找最大/最小值、排序等。
如果要求程序实现数组元素的顺时针转动,那么Line 6、Line 7、Line 8、Line 9应该如何修改?
实验5 数组——一维数组

淮海工学院计算机科学系实验报告书课程名:《C语言程序设计A 》题目:实验5 数组——一维数组班级:软嵌151学号:2015123349姓名:陈正宁1、实验内容或题目(1)从键盘输入10个整数,输出去掉其中最大的两个数,求剩余数据的平均值。
(2)从键盘输入10个整数,分别用选择和冒泡排序对这10个数进行排序。
(4)输入一个整数,在一个有序数列中使用折半查找法查找是否存在该整数。
(5)有a,b,c,d和e共5个不同的球,准备分给甲、乙、丙、丁和戊5个小朋友。
已知小朋友甲不用a球,小朋友乙不要b球,小朋友丙不用c求。
编写程序求共有多少种不同的分法。
2、实验目的与要求(1)掌握一维数组的定义和输入输出的方法。
(2)掌握与数组有关的算法,如排序、查找。
3、实验步骤与源程序⑴实验步骤(1)、(2)、选择排序:冒泡排序:(4)、(5)、⑵源代码(1)、#include<stdio.h>void main(){int a[10];int i,k,j,temp;double p,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k])k=j;if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}}printf("去掉其中最大的两个数后余下的整数:\n");for(i=0;i<8;i++){sum+=a[i];printf("%d ",a[i]);}p=sum/8;printf("\n");printf("剩余数据的平均值为:\n%lf\n",p);}(2)、#include<stdio.h>void main(){printf("下面使用选择排序:\n\n");int a[10];int i,j,t,k;printf("请输入10个待排序的整数:\n");for(i=0;i<9;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<10;i++){k=i;for(j=i+1;j<10;j++)if(a[j]>a[k])k=j;if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}printf("排序后的整数为:\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");}#include<stdio.h>void main(){printf("下面使用冒泡排序:\n\n");int a[10];int i,j,t;printf("请输入10个待排序的整数:\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("排序后的整数为:\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");}(4)、#include<stdio.h>void main(){int a[10]={0,1,2,3,4,5,6,7,8,9};int low=0,high=9;int mid,k;printf("请输入您想查找的数k:");scanf("%d",&k);while(low<=high){mid=(low+high)/2;if(k==a[mid])break;if(k<a[mid])high=mid-1;elselow=mid+1;}printf("\n");if(low<=high)printf("查到这个数!\n\n您想查找的数%d 是数组的第%d个元素\n",k,(low+high)/2+1);elseprintf("查无此数!\n");}(5)、#include<stdio.h>void main(){ int a,b,c,d,e,count=0;int x[6],i;for(i=1;i<=5;i++)x[i]=1;for(a=1;a<=5;a++)if(x[a]==1){ x[a]=0;for(b=1;b<=5;b++)if(x[b]){ x[b]=0;for(c=1;c<=5;c++)if(x[c]){ x[c]=0;for(d=1;d<=5;d++)if(x[d]){ x[d]=0;for(e=1;e<=5;e++)if(x[e]){ x[e]=0;if(a!=1&&b!=2&&c!=3)count++;x[e]=1;}x[d]=1;}x[c]=1;}x[b]=1;}x[a]=1;}printf("有%d种不同的分法。
一维数组(C语言)

字符数组
C、如果数组长度大于字符串实际长度,也只输出到遇‘\0’结束。 D、如果一个字符数组中包含一个以上‘\0’,那么遇到和第一个‘\0’ 就结束。〔利用scanf输入字符串,空格可作为结束符。〕
例:char str[13]; scanf(“%s〞,str);
字符数组
〔3〕给字符数组元素逐个赋初值。 char str[9]; str[0]=‘H’;str[1]=‘e’;str[2]=‘\0’;
应注意:用字符数组来存放字符串时,假设是逐个字符 赋值给数组元素,要在最后一个字符之后加上字符串结 束标志‘\0’。 用逐个字符给字符数组赋初值,对字符串的存取不太方 便。
printf(“\n〞);
}
B、使用getchar putchar getch getche函数。
字符数组
〔2〕将整个字符串一次输入或输出。用%s格式符。 例:char c[ ]=“china〞; printf(“%s〞,c);
结果为:china
注意: A、输出字符不包括结束符‘\0’; B、用%s格式符输出字符串时,printf 函数中的输出项是字
int a[10], b[10], k; for (k=0;k<10;k++) scanf(“%d〞,&a[k]); b=a; /*error*/ for(k=0;k<10;k++) b[k]=a[k];
一维数组
(3) 在使用数组元素时,数组元素中的下标表 达式的值必须是整型。 下标表达式值的下限为0,值的上限为该数 组元素的个数减1。 使用数组时注意其下标不要越界。如果下 标越界,程序无法得到正确的结果。
实验5一维数组(参考程序)

数组练习1.编写程序,让用户输入N个数(N:常量,值为5),存储到数组中,并求这些数的最大值,最后输出数组各元素的值及最大值。
#include <stdio.h>#define N 5void main(){int a[N],i,max;for(i=0;i<=N-1;i++){printf("\nplease input a[%d]:",i);scanf("%d",&a[i]);}max=a[0];for(i=1;i<=N-1;i++){if(a[i]>max)max=a[i];}for(i=0;i<=N-1;i++){printf("\na[%d]:%d",i,a[i]);}printf("\nmax is:%d",max);}2.修改以上程序,实现让用户输入N个数(N:常量,值为5),存储到数组中,并查找数组元素的最大值,将其删除,输出删除操作前数组元素的值及删除操作之后数组元素的值。
注意:删除某一个数组元素,要将后面的数组元素往前移,以保持数组存储数据的连续性。
#include <stdio.h>#define N 5void main(){int a[N],i,max,k;/*K记录最大值的位置*/for(i=0;i<=N-1;i++)/*输入数组*/{printf("\nplease input a[%d]:",i);scanf("%d",&a[i]);}max=a[0];k=0;for(i=1;i<=N-1;i++) /*找最大值及其位置*/{if(a[i]>max){max=a[i];k=i;}}printf("\nmax is:%d",max);printf("\n删除前数组:");for(i=0;i<=N-1;i++)/*删除前输出数组*/{printf("\na[%d]:%d",i,a[i]);}for(i=k+1;i<=N-1;i++)/*将删除位置后面的元素往前移*/{a[i-1]=a[i];}printf("\n删除后数组:");for(i=0;i<=N-2;i++)/*删除后输出数组*/{printf("\na[%d]:%d",i,a[i]);}}3.修改以上程序,实现让用户输入N-1个数(N:常量,值为5),存储到数组中,在第二个数组元素之前插入一个值为99的数,输出插入操作前数组元素的值及插入操作之后数组元素的值。
实验5 一维数组、二维数组

实验五一维数组、二维数组一、实验目的与要求1、熟练掌握一维数组、二维数组的定义、赋值和输入输出的方法。
2、掌握与数组有关的算法。
二、实验内容1、(1)输入N个整数,使用冒泡排序,将数据由大到小输出。
2、输入N-1个整数组成一数列,再输入某数x,先将数列排序,根据x的值插入到有序数列中。
3、输入行数n,打印出杨辉三角。
4、青年歌手参加歌曲大奖赛计分系统(1)有N个评委进行打分,求这位选手的平均得分(去掉一个最高分和一个最低分)。
(2)有N个评委进行打分,求M个选手每个人的平均得分(去掉一个最高分和一个最低分),并按平均得分由高到低排序输出。
5、输入N个整数,使用选择排序,将数据由大到小输出。
三、源程序1、#include<stdio.h>void main(){int i,j,t,a[50],n;scanf("%d",&n);printf("输入数据:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);for(j=0;j<(n-1);j++)for(i=0;i<(n-1-j);i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}p rintf("排序后得到的顺序为:\n");f or(i=0;i<n;i++)printf("%d ",a[i]);}2、#include<stdio.h>void main(){int i,j,t,a[50],n,x;scanf("%d",&n);printf("输入数据:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);for(j=0;j<(n-1);j++)for(i=0;i<(n-1-j);i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}p rintf("排序后得到的顺序为:\n");f or(i=0;i<n;i++)printf("%d ",a[i]);p rintf("请输入要插入的数:\n"); s canf("%d",&x);f or(i=n-1;i>=0;i--)if(x<a[i])a[i+1]=a[i];else break;a[i+1]=x;p rintf("插入后数据顺序为:\n");f or(i=0;i<=n;i++)printf("%d ",a[i]);}3、#include<stdio.h>void main(){int a[100][100];int i,j,n;printf("请输入打印行数:\n");scanf("%d",&n);for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];printf("杨辉三角为:\n");for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}4、(1)#include<stdio.h>void main(){int i,j,t,a[50],n;float x=0,y;printf("输入评委人数:\n");scanf("%d",&n);printf("输入各评委分数:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);for(j=0;j<(n-1);j++)for(i=0;i<(n-1-j);i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("排序后得到的顺序为:\n");for(i=0;i<n;i++)printf("%d ",a[i]);for(i=1;i<(n-1);i++){x+=a[i];y=x/(n-2);}printf("该选手平均得分为%f ",y);}(2)#include<stdio.h>void main(){int a[50][50];int s=0,b[50],t;int i,j,x,y,k,l;printf("请输入选手与评委各自的人数:\n");scanf("%d %d",&x,&y);printf("请输入选手各自的得分:\n"); for(i=0;i<x;i++)for(j=0;j<y;j++)scanf("%d",&a[i][j]);for(i=0;i<x;i++){for(k=0;k<y;k++)for(j=0;j<(y-1-k);j++)if(a[i][j]<a[i][j+1]){t=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=t;}}for (i=0;i<x;i++)for (j=0;j<y;j++)if (j==0||j==y-1)a[i][j]=0;for(i=0;i<x;i++){s=0;for(j=0;j<y;j++){s+=a[i][j];}b[i]=s/(y-2);}for (l=0;l<x-1;l++)for (i=0;i<x-1-l;i++)if (b[i]<b[i+1]){t=b[i];b[i]=b[i+1];b[i+1]=t;}printf("各个选手的平均分由高到低为:\n");for (i=0;i<x;i++)printf("%d ",b[i]);}5、#include<stdio.h>void main(){int a[100],i,j,k,x,n;printf("请输入数据的个数:\n");scanf("%d",&n);printf("请输入数据:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);printf("\n");for(i=0;i<(n-1);i++){k=i;for(j=i+1;j<n;j++)if(a[j]<a[k]) k=j;if(i!=k){x=a[i];a[i]=a[k];a[k]=x;}printf("排序后数据为:\n");for(i=0;i<n;i++)printf("%d ",a[i]);}}四、程序结果1、输入要输入数据的总数:3输入数据:23 555 63排序后得到的顺序为:23 63 5552、输入要输入数据的总数:4输入数据:4 5 9 1排序后得到的顺序为:1 4 5 9请输入要插入的数:3插入后数据顺序为:1 3 4 5 93、请输入打印行数:3杨辉三角为:11 11 2 14、(1)输入评委人数:5输入各评委分数:98 90 91 92 93排序后得到的顺序为:90 91 92 93 98该选手平均得分为92(2)请输入选手与评委各自的人数:3 4请输入选手各自的得分:91 92 99 90 99 89 88 81 92 93 83 88各个选手的平均分由高到低为:91 90 885、请输入数据的个数:4请输入数据:89 7 666 78排序后数据为:7 78 89 666 五、总结。
C语言编程一维数组的使用

实验三一维数组的使用【实验目的】1掌握一维数组、二维数组的定义和初始化方法。
2熟悉使用字符数组处理字符串处理的方法。
【实验内容】1 •输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数打印出来编写程序:#in elude <stdio.h>void readdata (float score[10]){int i;printf("依次输入10个学生的成绩:\n");for(i=0;i<10;i++)scan f("%f",&score[i]);return;}float aver(float score[10]){float sum;int i;for(sum=0,i=0;i<10;i++)sum=sum+score[i];return(sum/10);}void prin tff(float score[10],float ave) { int i;printf("低于平均分的成绩为:\n");for(i=0;i<10;i++) if(score[i]<ave) prin tf("%8.2f",score[i]); return;}mai n(){void readdata (float score[10]);float aver(float score[10]);void prin tff(float score[10],float ave); float ave,score[10]; readdata(score);ave=aver(score);prin tf("average=%6.2f\n",ave);prin tff(score,ave);}2、将一个数组中的值按逆序重新存放。
例如,原来顺序为8, 6, 5, 4, 1。
要求改为1,4, 5, 6, 8<编写程序:#include viostream.h>int main(){int i,j,a[5]={8,6,5,4,1},b[5];for(i=0,j=4;iv5,j>=0;i++,j--)b[j]=a[i];for(i=0;i<5;i++)a[i]=b[i];for(i=0;i<5;i++)coutv<a[i]vv"\t";}3、应用一维数组,对10个从键盘输入的数进行冒泡排序,使其按照从大到小的顺序输出。
C语言一维数组的基本操作

一.插入:C语言数组怎么插入一个元素#include<stdio.h>#include<stdlib.h>#define MAX 40void insert(int*p,int n,int m){ int i,k;for(i=0;i<n;i++)if(p[i]>=m){ k=i;break;}for(i=n-1;i>=k;i--)p[i+1]=p[i];printf("%d\n",k);p[k]=m;}void sort(int*p,int n){int i,j;for(i=1;i<n;i++)for(j=0;i+j<n;j++)if(p[j]>p[j+1]){int t;t=p[j+1];p[j+1]=p[j];p[j]=t;}}void main(){int a[MAX];int n,i,m,d;printf("输入数据个数(n<40):");d=scanf("%d",&n);while(d!=1&&n>=40){system("cls");f flush(stdin);printf("请重新输入:");scanf("%d",&n);}printf("请输入数组元素:");for(i=0;i<n;i++)scanf("%d",a+i);printf("请输入要插入的数字:");scanf("%d",&m);sort(a,n);insert(a,n,m);for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");}二.删除:在长度是n的数组a中,删除一个指定的元素num。
实验五 数组——一维数组

淮海工学院计算机科学系实验报告书课程名:《 C语言程序设计教程》题目:实验五数组——一维数组班级:学号:姓名:1、实验内容或题目(1)例:编程从键盘输入一个班C语言的成绩,统计其最高分、最低分、平均分及各分数段的人数及所占百分比,并输出统计结果。
[0,60)不及格 [60,75)及格 [75,90)良好 [90,100)优秀要求格式如下:(2)编写一个程序,用冒泡法对数组中的10个数进行排序,尽量用最少的比较次数。
2、实验目的与要求1、目的:(1)进一步学习程序设计的方法和步骤;(2)掌握循环结构程序设计与数组的结合;3、实验步骤与源程序⑴实验步骤1.建立工程,添加C++源文件,编写程序。
2.调试修改语法错误。
3.编译,链接生成可执行程序。
4.运行程序,检查试验结果。
⑵源代码(一)#include<stdio.h>void main(){int score[10],i;float yx=0,lh=0,jg=0,bjg=0,aver=0;int max=0,min=999,maxn,minn;printf("请输入10位学生的成绩:");for(i=0;i<=9;i++){scanf("%d",&score[i]);}for(i=0;i<=9;i++){if(score[i]>max){max=score[i];maxn=i;}if(score[i]<min){min=score[i];minn=i;}aver+=score[i];if(score[i]<=60)bjg=bjg+1;else if(score[i]<75)jg=jg+1;else if(score[i]<90)lh=lh+1;else yx=yx+1;}aver/=10;printf("最高分者:%d\n",score[maxn]);printf("最低分者:%d\n",score[minn]);printf("平均分为%.2f\n",aver);printf("优秀%.0f人,占比为%.0f%%\n",yx,yx*10);printf("良好%.0f人,占比为%.0f%%\n",lh,lh*10);printf("及格%.0f人,占比为%.0f%%\n",jg,jg*10);printf("不及格%.0f人,占比为%.0f%%\n",bjg,bjg*10); }法二#include<stdio.h>void main(){int i,a[10],max=0,min=100,n1=0,n2=0,n3=0,n4=0;float z=0.0;printf("请输入10位学生的成绩:");for(i=0;i<=9;i++)scanf("%d",&a[i]);for(i=0;i<=9;i++){if(a[i]>max) max=a[i];if(a[i]<min) min=a[i];}printf("最高分者:%d\n",max);printf("最低分:%d\n",min);for(i=0;i<=9;i++){z=z+a[i];}printf("平均分为%f\n",z/10);for(i=0;i<=9;i++){if(a[i]>=90&&a[i]<100) n1++;if(a[i]>=75&&a[i]<90) n2++;if(a[i]>=60&&a[i]<75) n3++;if(a[i]<60) n4++;}printf("优秀%d人,占比为%d%%\n",n1,n1*10);printf("良好%d人,占比为%d%%\n",n2,n2*10);printf("及格%d人,占比为%d%%\n",n3,n3*10);printf("不及格%d人,占比为%d%%\n",n4,n4*10); }(二)#include<stdio.h>void main(){int r[]={3,5,4,2,1,7,8,10,9,6};int i,j,tmp,exchange;printf("排序前:");for(i=0;i<10;i++){printf("%d",r[i]);}printf("\n");for(i=0;i<9;i++){for(j=8;j>=i;j--)if(r[j+1]<r[j]){tmp=r[j+1];r[j+1]=r[j];r[j]=tmp;}}printf("排序后:");for(i=0;i<10;i++){printf("%d",r[i]);}printf("\n");}4、测试数据与实验结果(可以抓图粘贴)5、结果分析与实验体会现在往后需要敲打的代码越来越多,很容易出错,要注意不能丢括号,分号等,这次学习了一堆数组,冒泡法,对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;}```编译并运行代码,观察输出结果,理解数组的声明和初始化方式。
实验05 一维的数组的定义及使用

实验五一维的数组的定义及使用一、实验目的1.掌握一维数组的定义及赋值操作;2.掌握一维数组元素的引用方法;3.掌握一维数组的输入/输出方法;4.掌握与数组有关的基本算法(尤其是排序算法).5.学会调试程序.二、实验内容(实验报告中第一题只要写出结果即可,其余2题要求写程序代码及调试结果)1、上机运行程序,写出程序的运行结果.(要求先自己分析程序写出结果,再上机调试,写出调试得到的结果)main(){int a[]={1,2,3,4},i,j,s=0;j=1;for(i=3;i>=0;i--){s=s+a[i]*j;j=j*10;}printf(“s %d \n”,s);2、输入10个学生的成绩,统计最高分和最低分及平均分,并输出。
3、用冒泡法对给定的10个数按降序排序。
程序参见教材P136三、仪器、设备、材料微机四、实验准备1.理论知识预习及要求①数组定义及数组元素的书写规范;②一维数组的定义及元素的引用方法;③一维数组的输入/输出实现方法;④一维数组的基本算法及实现。
2.实验指导书预习及要求对程序执行流程不清楚时,请先画出程序的流程图.上机前先思考编出程序,并分析结果,上机时调试,并写出实验结果。
3.其他准备无五、实验原理或操作要点简介利用循环语句实现数组的输入/输出的方法;数组元素的引用方法;一维数组的常用算法—尤其是排序算法。
六、注意事项及时保存文件,避免死机或断电造成的文件丢失。
调试程序过程中,出现问题找不出来时,请保存源程序,请老师解答。
不要删除错误程序后,口头描述错误。
调试过程中,若出现问题,请仔细观察TC编辑器给出的错误提示,逐步学会程序调试.七、实验过程与指导1.进入TC2.0环境。
2.Alt+F激活“File”菜单项,方向键下移选择“New”菜单项,回车,新建一个文件。
3.输入源程序。
4.Alt+C激活“Compile”菜单项,选择“Compile to OBJ”,回车,编译成目标文件。
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个整数,找出其中的最大数及其所在的下标。
实验一 一维数组应用

实验一一维数组应用1、实验要求➢掌握一维、字符数组定义、初始化、引用➢掌握各种数组的应用、字符串处理问题2、实验内容1、阅读下面程序,写出运行结果。
1) #include <stdio.h>main(){int n[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for(i=0;i<=k;i++)for(j=0;j<=i;j++)n[j]=n[i]+1;for(i=0;i<=k;i++)printf("%3d",n[i]);printf("\n");}运行结果如下:2) #include <stdio.h>main(){int j,ch,a[8];for(j=0;j<8;j++) a[j]=0;while((ch=getchar())!='\n')if(ch>='0'&&ch<='7') a[ch-'0']++;for(j=0;j<8;j++)printf("a[%d]=%d\n",j,a[j]);}程序运行时输入:12345678900987654321234806结果是;2、随机产生50个0~100之间的整数,输入两个整数m和n (0 <= m < n < 50),将m和n之间的整数按从小到大的顺序进行排序,并输出排序前和排序后的所}3、在一个按值有序排列的数组中查找指定的元素。
假设数组有10个元素,按值由小到大有序,由键盘输入一个数x,然后在数组中查找x,如果找到,输出相应元素的位置,若找不。
5 C语言一维数组

数组的起始下标、最后一个元素的下标 定义数组时不指定长度(动态数组) 对数值型数组进行整体操作 数组用方括号 用scanf语句时,数组元素前应加&
语句错误,不了解数组定义时与数组元素 使用时的区别:scanf(“%d”,a[10]); 在一个for语句中同时完成输入、输出数 据,但没有使用复合语句。
数组名: 数组中的所有元素具有相同的名字bd。
类型说明符 int 任一种基 本数据类 型或构造 数据类型。
数组名[常量表达式] a[10] 用户自定义的数组 名字,其定名规则 与变量名定名规则 一样,都需遵循标 识符定名规则
[]——下标运 算符 单目运算符 优先级(1) 左结合 不能用( )
表示元素 的个数, 即数组长 度。
a[4]=4; a[5]=5; int a[10]= { 0,1,2,3 }; for(int i=0;i<10;i++) a[4]=0; a[5]=0;a[6]=0; a[7]=0; a[6]=6; a[7]=7; a[4]=a[3]+2; scanf("%d",&a[i]); a[8]=0; a[9]=0; a[8]=8; a[9]=9;
用于访问的、具有相 同的数据类型。在程 序设计中相当于变量 名的用法。 为标识数组中的每个 元素,C语言对其进 行编号。这个编号称 之为数组元素下标。 (C语言规定下标从0 数组元素下标 开始)。
指定该数组 的数据个数
数组元素名
数组长度 bd[0] bd[10]
bd[1] bd[2] …………………… bd[9]
#include <stdio.h> void main() { float grade[10]; /*定义一个实型数组存放10个成绩 */ float average; int i; for (i=0;i<10;i++) /*输入10个数据*/ scanf("%f",&grade[i]); for(i=1,average=0;i<10;i++) /*求平均值*/ average=average+grade[i]; 从上面两个例子的比较中,我们可以看到 average=average/10; 用数组解决这类问题:程序简洁、思路 for (i=0;i<10;i++) /*打印低于平均成绩的同学成就*/ 清楚明了。这就是数组带给我们的好处。 if (grade[i]<average) printf(“grade=[%d]=%f\n”,i+1,grade[i]); }
C语言实验报告第五章

实验报告课程名称_____ C语言程序设计_____实验项目___数组(1)___实验仪器______计算机___________系别_____信息与通信工程学院_______ 专业______通信_________班级/学号____学生姓名______ ___实验日期____2013年06月19日___成绩_______________________指导教师______李文杰_________一、实验目的1、掌握一维数组的定义及初始化。
2、掌握一维数组元素的引用及其应用。
3、掌握一维数组的常见算法:遍历,查找算法(顺序,折半),排序算法,插入算法,删除算法。
二、实验内容1.描述津津上初中了。
妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。
另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。
但是津津如果一天上课超过八个小时就会不高兴,而且,上得越久就会越不高兴。
假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。
请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴。
如果会的话,哪天最不高兴。
输入输入数据有多组,第一行包含一个整数T,表示有T组数据。
每组输入包括七行数据,分别表示周一到周日的日程安排。
每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出输出包括一行,这一行只包含一个数字。
如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。
如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的—天。
样例输入15 36 27 25 35 40 40 6样例输出3程序代码:# include "stdio.h" int main(){int a[10000]; int n, r;int i, ii, tt;char c;int k, maxm;a[0]=0;scanf ("%d",&n); for (tt=1;tt<=n;tt++) {k=0;maxm=0;for (i=1;i<=7;i++) {scanf("%d%d",&r,&ii); r+=ii;a[i]=r;if (r>8){k++;if(a[maxm]<r){maxm=i;}}}if (k==0)printf ("0");elseprintf ("%d",maxm); printf ("\n");}return 0;}2、描述某公司邀请40个顾客参加投票活动,选举他们最喜爱的产品,以决定公司今后的销售策略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五一维数组
实验5.2
#include"stdafx.h"
#include<stdlib.h>
#include<time.h>
int _tmain(int argc, _TCHAR* argv[])
{int a[10],i,max,min;
float aver;
srand((unsigned)time(NULL));
for(i=0;i<10;i++) a[i]=rand()%50+1;
max=min=aver=a[0];
for(i=1;i<10;i++)
{if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
aver=aver+a[i];
printf("%d ",a[i]);
}
aver=aver/10;
printf("\nMax=%d Min=%d Average=%.2f\n",max,min,aver);}
实验5.3
#include"stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{int a[11]={19,17,15,13,11,9,7,5,3,1},k,i;
printf("input a number:"); scanf("%d",&k);
for(i=9;i>=0;i--)
{ if(k>=a[i])
{a[i+1]=a[i];
if(i==0) a[i]=k;
} else
{a[i+1]=k; break;}
}
for(i=0;i<11;i++) printf("%d ",a[i]);
printf("\n");}
实验5.4
#include "stdafx.h"
#include "math.h"
#include "time.h"
#include "stdlib.h"
#define N 20
int _tmain(int argc, _TCHAR* argv[])
{int a[N],i,j,k,n=N;
srand((unsigned)time(NULL));
printf("Original date:\n");
for(i=0;i<N;i++)
{ a[i]=rand()%21; printf("%d ",a[i]);}
printf("\nafter deleting:\n");
for(i=0;i<n-1;i++)
{j=i+1;
while(j<n)
{if(a[i]==a[j])
{n--;for(k=j;k<n;k++) a[k]=a[k+1];}
else j++;}}
for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n");
return 0;
}
实验五一维数组
实验5.5
#include"stdafx.h"
#include<math.h>
#define N 10
int _tmain(int argc, _TCHAR* argv[])
{int a[N],i,j,item;
printf("enter 10 numbers:");
for(i=0;i<N;i++) scanf("%d",&a[i]);
for(i=1;i<N;i++)
{item=a[i];j=i-1;
while(item<a[j]&&j>=0) {a[j+1]=a[j];j--;}
a[j+1]=item;}
printf("after sorted:");
for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); }。