一维数组例题(PPT课件)
合集下载
VisualBasic.Net程序设计课件第10讲 一维数组

程序设计
华中农业大学理学院计算机科学系 吴鹏飞
第10讲 一维数组
1 一维数组引入 2 一2/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
1 一维数组引入
1.1 数组引例【例10.1】:射击比赛成绩统计。 编写一个程序,输入10名射击运动员的一次比赛成绩 (以环数计算),低于平均环数的人遭淘汰,统计通过 比赛的人数并按环数高低显示他们的成绩。
End If
12/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
3 一维数组应用
3.5 For Each/Next语句访问数组 【例10.7】如图输出数组A中各元素及它们的和,文本框中第一行是数 组元素,下一行是它们的和。
格式: For Each 元素 In 数组名 循环体 Next
3/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
4/15
5/15
2 一维数组定义
2.4 以New子句来指定数组变量 数组的定义也可使用New子句,指定数组类型,数组名后不 必设置数组大小。 格式: Dim 数组名()As 类型=New 类型(数组大小){ } 例如:Dim myArray()As Integer=New Integer(3){ }
14/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
4 一维数组小结
4.1 知识点小结 4.1 课外思考题
(1)什么是数组?如何改变数组大小? (2)建立两个长度相同的数组,一个数组内容为姓名, 另一个数组内容为分数,给数组赋值。用户输入分数后, 可以查询到此分数的所有人。
15/15
2012 年 10 月
华中农业大学理学院计算机科学系 吴鹏飞
第10讲 一维数组
1 一维数组引入 2 一2/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
1 一维数组引入
1.1 数组引例【例10.1】:射击比赛成绩统计。 编写一个程序,输入10名射击运动员的一次比赛成绩 (以环数计算),低于平均环数的人遭淘汰,统计通过 比赛的人数并按环数高低显示他们的成绩。
End If
12/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
3 一维数组应用
3.5 For Each/Next语句访问数组 【例10.7】如图输出数组A中各元素及它们的和,文本框中第一行是数 组元素,下一行是它们的和。
格式: For Each 元素 In 数组名 循环体 Next
3/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
4/15
5/15
2 一维数组定义
2.4 以New子句来指定数组变量 数组的定义也可使用New子句,指定数组类型,数组名后不 必设置数组大小。 格式: Dim 数组名()As 类型=New 类型(数组大小){ } 例如:Dim myArray()As Integer=New Integer(3){ }
14/15
华中农业大学理学院计算机科学系 吴鹏飞
2012 年 10 月
4 一维数组小结
4.1 知识点小结 4.1 课外思考题
(1)什么是数组?如何改变数组大小? (2)建立两个长度相同的数组,一个数组内容为姓名, 另一个数组内容为分数,给数组赋值。用户输入分数后, 可以查询到此分数的所有人。
15/15
2012 年 10 月
一维数组(C语言)ppt课件

printf(“\n〞);
}
B、运用getchar putchar getch getche函数。
字符数组
〔2〕将整个字符串一次输入或输出。用%s格式符。 例:char c[ ]=“china〞; printf(“%s〞,c);
结果为:china
留意: A、输出字符不包括终了符‘\0’; B、用%s格式符输出字符串时,printf 函数中的输出项是字
printf(“请输入数字字符串:〞); Scanf(“%s〞,str);
strlen(str)
main( ) {
insert(str)
char str[10]; scanf(“请输入
数字字符串:%s\n〞,&str);
insert(str);
}
char str[ ]; { int i1;
for(i1=strlen(str[10]);i1>0; i1--) {
一维数组
4、数组元素的初始化 普通方式为:
类型名 数组名[整型常量表达式]={常量1,常量2,…}
例:int a[10]={1,2,3,4,5,6,7,8,9,10}; 该语句定义了一个动态数组,并对该动态数组进展了初始化。
留意: 1、所赋初值的类型必需与阐明的类型一致。 2、在指定初值时,第一个值赋给下标为0的元素。 3、不能够跳过前面的元素给后面的元素赋初值。
scanf(" %d",&a[i]); printf(" \nyou input is :"); for (i=0;i<10;i++) printf(" %d, ",&a[i]); }
一维数组
一维数组的应用举例:排序问题

10
C语言程序设计
C语言程序设计
一维数组的应用举第例五:排章序问数题 组
数据的排序就是将一批数据由小大到(升序)或由 大到小(降序)进行排列。常用的有选择法、冒泡法。 1.选择法排序
算法 (升序 )
( 设有n个数,存放在数组A(1)…..A(n)中)
1)第1遍:从中选出最小的数,与第 1个数交换 位置;
(演示)
753 8 91 6 4
后面,经n-1次两两相邻比较后,最大的数已交换
到最后一个位置。
演示
2)第 2 趟:将前n-1个数(最大的数已在最后)按 上法比较,经n-2次两两相邻比较后得次大的数; 3)依次类推,n个数共进行n-1趟比较,
在第j趟中要进行n-j次两两比较。
7
一维数组的应用举例:排序问题 冒泡法排序算法的流程图:
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
/*第i遍*/
for(j=0;j<N-i-1;j++)
/*相邻2个数比较*/
if(a[j]>a[j+1])
/*如果a[j]>a[j+1]*/
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
/*交换a[j]和a[j+1]*/
printf("input %d numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]); for(i=0;i<N-1;i++)
ቤተ መጻሕፍቲ ባይዱ
C语言程序设计
C语言程序设计
一维数组的应用举第例五:排章序问数题 组
数据的排序就是将一批数据由小大到(升序)或由 大到小(降序)进行排列。常用的有选择法、冒泡法。 1.选择法排序
算法 (升序 )
( 设有n个数,存放在数组A(1)…..A(n)中)
1)第1遍:从中选出最小的数,与第 1个数交换 位置;
(演示)
753 8 91 6 4
后面,经n-1次两两相邻比较后,最大的数已交换
到最后一个位置。
演示
2)第 2 趟:将前n-1个数(最大的数已在最后)按 上法比较,经n-2次两两相邻比较后得次大的数; 3)依次类推,n个数共进行n-1趟比较,
在第j趟中要进行n-j次两两比较。
7
一维数组的应用举例:排序问题 冒泡法排序算法的流程图:
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
/*第i遍*/
for(j=0;j<N-i-1;j++)
/*相邻2个数比较*/
if(a[j]>a[j+1])
/*如果a[j]>a[j+1]*/
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
/*交换a[j]和a[j+1]*/
printf("input %d numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]); for(i=0;i<N-1;i++)
ቤተ መጻሕፍቲ ባይዱ
lesson9数据的组织结构一一维数组

lesson9数据的组织结构 一一维数组
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•31 •学习目标:
➢学会使用数组处理程序中的数据
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•32 •数组概念
•向量 •数学定义:一组既有大小又有方向的 •量例如: •向量d:(1,3,4,6,5,2,0,8) •向量b:(100,300,200,400)
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•流程图
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•32 •数组概念
•#include <stdio.h>
•int main( ){
• int d[8],n,i;
• scanf("%d",&n);
#define NUM 100
int main( )
{
int f[NUM],i;
f[0]=1;
f[1]=1;
for (i=2; i<NUM; i++){
f[i]=f[i-1]+f[i-2];
}
• for (i=0; i<NUM; i++){
• printf(“%d,”,f[i]);
•}
• return 0;
•234
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•#include <stdio.h>
•#include <math.h> •#define NUM 18
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•31 •学习目标:
➢学会使用数组处理程序中的数据
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•32 •数组概念
•向量 •数学定义:一组既有大小又有方向的 •量例如: •向量d:(1,3,4,6,5,2,0,8) •向量b:(100,300,200,400)
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•流程图
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•32 •数组概念
•#include <stdio.h>
•int main( ){
• int d[8],n,i;
• scanf("%d",&n);
#define NUM 100
int main( )
{
int f[NUM],i;
f[0]=1;
f[1]=1;
for (i=2; i<NUM; i++){
f[i]=f[i-1]+f[i-2];
}
• for (i=0; i<NUM; i++){
• printf(“%d,”,f[i]);
•}
• return 0;
•234
PPT文档演模板
2020/11/2
lesson9数据的组织结构一一维数组
•#include <stdio.h>
•#include <math.h> •#define NUM 18
一维数组的定义,赋值,遍历PPT教学课件

一维数组
2020/12/09
1
主要内容
• 一维数组的定义 • 一维数组元素的引用 • 一维数组的初始化和赋值
• 一维数组的遍历
• 一维数组元素的查找 • 一维数组元素的排序
2020/12/09
2
一维数组的定义
2020/12/09
3
一维数组的定义
• 定义数组的语法: int a[10]; 数据类型说明符 数组名[数组长度];
2020/12/09
15
例题:从键盘输入10个整数存放在数组中,
找出其中最大的一个数,输出该最大数。
解法1:记下最大数其值 main() {
int i, max,a[10]; printf("enter data:\n"); for(i=0;i<10;i++) scanf("%d", &a[i]); max=a[0]; //假定a[0]的元素最大 for(i=1;i<10;i++)
if(a[i]>max) max=a[i];
printf(“最大数是%d\n", max); }
2020/12/09
解法2:记下最大数相应的下标 main() {
int i, max_id,a[10]; printf("enter data:\n"); for(i=0;i<10;i++) scanf("%d", &a[i]); max_id=0; //假定下标为0的元素最大 for(i=1;i<10;i++)
(3)不能对整个数组初始化; int data[5]=1; 错误,应为: int data[5]={1,1,1,1,1};
2020/12/09
1
主要内容
• 一维数组的定义 • 一维数组元素的引用 • 一维数组的初始化和赋值
• 一维数组的遍历
• 一维数组元素的查找 • 一维数组元素的排序
2020/12/09
2
一维数组的定义
2020/12/09
3
一维数组的定义
• 定义数组的语法: int a[10]; 数据类型说明符 数组名[数组长度];
2020/12/09
15
例题:从键盘输入10个整数存放在数组中,
找出其中最大的一个数,输出该最大数。
解法1:记下最大数其值 main() {
int i, max,a[10]; printf("enter data:\n"); for(i=0;i<10;i++) scanf("%d", &a[i]); max=a[0]; //假定a[0]的元素最大 for(i=1;i<10;i++)
if(a[i]>max) max=a[i];
printf(“最大数是%d\n", max); }
2020/12/09
解法2:记下最大数相应的下标 main() {
int i, max_id,a[10]; printf("enter data:\n"); for(i=0;i<10;i++) scanf("%d", &a[i]); max_id=0; //假定下标为0的元素最大 for(i=1;i<10;i++)
(3)不能对整个数组初始化; int data[5]=1; 错误,应为: int data[5]={1,1,1,1,1};
2020-2021学年信息学奥赛资料 第十一课 一维 数组(适用于高中)课件

一个正整数 n 是否能被一个“幸运数”整除。幸运数是指一个只包含 4 或 7 的 正整数,如 7、47、477 等都是幸运数,17、42 则不是幸运数。 【输入格式】 一行一个正整数 n,1≤n≤1000。 【输出格式】 一行一个字符串,如果能被幸运数整除输出“YES”;否则,输出“NO”。 【输入样例】 47 【输出样例】 YES
(1)memset 函数
memset 函数是给数组“按字节”进行赋值,一般用在 char 国内外研究状况
型数组中,如果是 int 类型的数组,一般赋值为 0 和 -1。使 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
luctus nibh sit amet sem vulputate venenatis bibendum orci
2. 一维数组的元素引用
数组定义好后,就可以引用(调用)其中的任意一个元 素。引用格式为:
数组名[下标] 如:h[5]、h[i*2+1]等。其中,下标只能为整型常量或 整型表达式,值必须在数组定义的下标范围内,否则会出现 “下标越界错误”。 需要注意的是,不能一次引用整个数组,只能逐个引用 数组的单个元素。
例2、走楼梯
【问题描述】 一个楼梯有 n 级,小苏同学从下往上走,一步可以跨一级, 也可以跨两级。问:他走到第 n 级楼梯有多少种走法? 【输入格式】 一行一个整数 n,0<n≤30。 【输出格式】 一行 n 个整数,之间用一个空格隔开,表示走到第 1 级、第 2 级、……第 n 级分别有多少种走法。 【输入样例】
国内外研究状况
一维数组的输入、输出等操作,都是采用循环语句结合 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus nibh sit amet sem vulputate venenatis bibendum orci
(1)memset 函数
memset 函数是给数组“按字节”进行赋值,一般用在 char 国内外研究状况
型数组中,如果是 int 类型的数组,一般赋值为 0 和 -1。使 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
luctus nibh sit amet sem vulputate venenatis bibendum orci
2. 一维数组的元素引用
数组定义好后,就可以引用(调用)其中的任意一个元 素。引用格式为:
数组名[下标] 如:h[5]、h[i*2+1]等。其中,下标只能为整型常量或 整型表达式,值必须在数组定义的下标范围内,否则会出现 “下标越界错误”。 需要注意的是,不能一次引用整个数组,只能逐个引用 数组的单个元素。
例2、走楼梯
【问题描述】 一个楼梯有 n 级,小苏同学从下往上走,一步可以跨一级, 也可以跨两级。问:他走到第 n 级楼梯有多少种走法? 【输入格式】 一行一个整数 n,0<n≤30。 【输出格式】 一行 n 个整数,之间用一个空格隔开,表示走到第 1 级、第 2 级、……第 n 级分别有多少种走法。 【输入样例】
国内外研究状况
一维数组的输入、输出等操作,都是采用循环语句结合 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec luctus nibh sit amet sem vulputate venenatis bibendum orci
第7章一维数组和二维数 37页PPT文档

printf("%5d",b[i][j]); printf("\n"); } }
例7.5有一个3×4的矩阵,编程求出其中值最大的那 个元素,以及其所在的行号和列号。(最大值唯一)
ij
ij ij ij
max
a
1
2
3
4
1149320
ij ij
ij ij
9
8
7
10
ij ij ij ij
-10
6
-5
2
#include <stdio.h> void main( ) { int i,j,row,colum,max;
第七章 数组
第7章 一维数组和二维数组
一、一维数组 • 1、一维数组的定义 • 2、一维数组元素的引用 • 3、一维数组的初始化
二、二维数组 • 1、二维数组的定义和引用 • 2、二维数组的初始化
• 前几章使用的变量都属于基本类型,例 如整型、字符型、浮点型数据,这些都 是简单的数据类型。
• 对于有些数据,只用简单的数据类型是 不够的,难以反映出数据的特点,也难 以有效地进行处理。
a[0] a [ 1 ] a[2] a[3] a[4] a[5] a[6] a[7] 0 1 234567
•给部分元素赋初值。 例 int a[8]={ 0,1,2,3,4 };
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 0 123 4 0 0 0
•给全部元素赋初值时可不指定数组的长度。 例 int a[ ]={ 0,1,2,3,4,5,6,7 };
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
例7.5有一个3×4的矩阵,编程求出其中值最大的那 个元素,以及其所在的行号和列号。(最大值唯一)
ij
ij ij ij
max
a
1
2
3
4
1149320
ij ij
ij ij
9
8
7
10
ij ij ij ij
-10
6
-5
2
#include <stdio.h> void main( ) { int i,j,row,colum,max;
第七章 数组
第7章 一维数组和二维数组
一、一维数组 • 1、一维数组的定义 • 2、一维数组元素的引用 • 3、一维数组的初始化
二、二维数组 • 1、二维数组的定义和引用 • 2、二维数组的初始化
• 前几章使用的变量都属于基本类型,例 如整型、字符型、浮点型数据,这些都 是简单的数据类型。
• 对于有些数据,只用简单的数据类型是 不够的,难以反映出数据的特点,也难 以有效地进行处理。
a[0] a [ 1 ] a[2] a[3] a[4] a[5] a[6] a[7] 0 1 234567
•给部分元素赋初值。 例 int a[8]={ 0,1,2,3,4 };
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 0 123 4 0 0 0
•给全部元素赋初值时可不指定数组的长度。 例 int a[ ]={ 0,1,2,3,4,5,6,7 };
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
19-一维数组冒泡排序37页PPT

例【2】将例【1】中的10个学生的竞赛成绩从键盘输 入,计算出平均分,将平均分输出到屏幕上。
#include”stdio.h” #define SIZE 10 main()
{ int i,student[SIZE],sum=0,AVG; for(i=0;i<SIZE;i++)
scanf(“%d”,&student[i]); for(i=0;i<SIZE;i++) sum= sum+student[i]; AVG=sum/ SIZE; printf(“the average is:%d”, AVG); }
num
num[0] 12
200
num[1] 13
202
一组变量
num[2] 14
204
num[3] 15
206
num[4] 16
208
注意:
(1) 数组的数据类型定义的是每个数组元素的 取值类型。对于一个数组来说,所有数组元素 的数据类型应该都是相同的。
(2) 数组名要符合用户定义字的书写规则,也 就是与普通变量一样。
{
int a[size],b[size+5];
}
(√)
在数组的引用中: 下标可以是常量,可以是变量,对于上面的 例子,有: a[0]~a[99]都可以用,还可以像如下这种方 式用:i=2; a[i]=34;
a[i++];
a[i--];
a[++i];
a[--i];
7.3 一维数组元素值的输入与输出
数组的初始化和赋值的区别
数组的初始化:是指在定义数组的时候进行 的,例如:
int a [3]={1,2,3}; /* 初始化 */ 数组元素的赋值:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一维数组例题
【例5-1】输入8个整数到一维数组中,统计该数组中奇数的个数。 #include <stdio.h> void main() { int i,count=0,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) { scanf("%d",&a[i]); if(a[i]%2==1) count++; } printf("%d\n",count); }
【例5-6】输入一个8个整数的一维数组,求该数组中最大的元 素值以及最大元素所在的下标。
#include <stdio.h> void main() { int i,max,r,a[8];//max、r分别存放最大元素值、下标 max=-10000000; for(i=0;i<8;i++) { scanf("%d",&a[i]); if(max<a[i]) { max=a[i]; r=i; } } printf("最大元素值:%d,下标:%d\n",max,r); }
【例5-1】将1-1000中所有11的倍数存到一个一维数组中,并输出。
#include <stdio.h> void main() { int i,j=0,a[100]; for(i=1;i<1000;i++) { if(i%11==0) { a[j]=i; j++; } } for(i=0;i<j;i++) printf("%d ",a[i]); }
统计
【例5-6】输入一个8个整数的一维数组 Nhomakorabea一个整数,统计该整数在数组中
出现的次数。
#include <stdio.h> void main() { int i,t,a[8],count=0; for(i=0;i<8;i++) scanf("%d",&a[i]); scanf("%d",&t); for(i=0;i<8;i++) if(a[i]==t) count++; printf("%d\n",count); }
【例5-6】输入一个8个整数的一维数组,按逆序重新存放,并输出。
#include <stdio.h> void main() { int i,t,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) scanf("%d",&a[i]); for(i=0;i<8/2;i++) { t=a[i]; a[i]=a[7-i]; a[7-i]=t; } for(i=0;i<8;i++) printf("%d ",a[i]); }
【例5-6】输入一个8个整数的一维数组,将各数顺序向后移一位,最 后一个数移到最前面,并输出。
#include <stdio.h> void main() { int i,t,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) scanf("%d",&a[i]); t=a[7]; 顺序向前移一位,最第一个 for(i=7;i>0;i--) 数移到最后? a[i]=a[i-1]; a[0]=t; for(i=0;i<8;i++) printf("%d ",a[i]); }
【例5-1】输入8个整数到一维数组中,统计该数组中奇数的个数。 #include <stdio.h> void main() { int i,count=0,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) { scanf("%d",&a[i]); if(a[i]%2==1) count++; } printf("%d\n",count); }
【例5-6】输入一个8个整数的一维数组,求该数组中最大的元 素值以及最大元素所在的下标。
#include <stdio.h> void main() { int i,max,r,a[8];//max、r分别存放最大元素值、下标 max=-10000000; for(i=0;i<8;i++) { scanf("%d",&a[i]); if(max<a[i]) { max=a[i]; r=i; } } printf("最大元素值:%d,下标:%d\n",max,r); }
【例5-1】将1-1000中所有11的倍数存到一个一维数组中,并输出。
#include <stdio.h> void main() { int i,j=0,a[100]; for(i=1;i<1000;i++) { if(i%11==0) { a[j]=i; j++; } } for(i=0;i<j;i++) printf("%d ",a[i]); }
统计
【例5-6】输入一个8个整数的一维数组 Nhomakorabea一个整数,统计该整数在数组中
出现的次数。
#include <stdio.h> void main() { int i,t,a[8],count=0; for(i=0;i<8;i++) scanf("%d",&a[i]); scanf("%d",&t); for(i=0;i<8;i++) if(a[i]==t) count++; printf("%d\n",count); }
【例5-6】输入一个8个整数的一维数组,按逆序重新存放,并输出。
#include <stdio.h> void main() { int i,t,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) scanf("%d",&a[i]); for(i=0;i<8/2;i++) { t=a[i]; a[i]=a[7-i]; a[7-i]=t; } for(i=0;i<8;i++) printf("%d ",a[i]); }
【例5-6】输入一个8个整数的一维数组,将各数顺序向后移一位,最 后一个数移到最前面,并输出。
#include <stdio.h> void main() { int i,t,a[8];//max、r分别存放最大元素值、下标 for(i=0;i<8;i++) scanf("%d",&a[i]); t=a[7]; 顺序向前移一位,最第一个 for(i=7;i>0;i--) 数移到最后? a[i]=a[i-1]; a[0]=t; for(i=0;i<8;i++) printf("%d ",a[i]); }