基本信息
文件名称:高级语言程序设计(CC++版) 课件 第5章 数组.pptx
文件大小:147.98 KB
总页数:32 页
更新时间:2025-05-27
总字数:约2.94千字
文档摘要

第5章数组;目录;为了方便存储和处理批量数据,提高程序设计的效率,通常把具有相同类型的批量元素按有序的形式组织起来,这些有序排列的同类数据元素的集合就称为数组,组成数组的各个变量就称为数组的元素。

数组明确地反映了数据间的联系,含义清晰且使用方便,将其与循环有机结合处理批量数据,有利于提高程序设计的效率,增强了程序的可读性。;1.一维数组(定义与引用);1.一维数组(初始化);例5.1:输入一个非负十进制整数,将其转换为二进制形式输出。

输入:一个非负整数n(0=n2^31)。

输出:对应的二进制形式。;例5.2:一个非递减有序的整型数组有n个元素,给定一个整数num,将num插入该序列的适当位置,使序列仍保持非递减有序。

输入:输入有三行。第一行是一个正整数n(n=1000)。第二行是n个整数,第三行是待插入整数num。

输出:输出非递减有序的n+1个整数,数据之间用空格隔开。输出占一行。;2.数组排序;例5.3:对一维数组按照从小到大的顺序排序。

输入:第一行输入一个整数n(1=n=100)表示数组有n个整数;第二行输入n个整数。

输出:对这n个整数按照从小到大的顺序输出,数据之间用一个空格隔开。;#includeiostream //解法2:冒泡排序

usingnamespacestd;

intmain()

{

intn,a[100],i,j,temp;

cinn;

for(i=0;in;i++)

cina[i];

for(i=n-1;i=1;i--)

for(j=0;ji;j++)

if(a[j]a[j+1]){

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

for(i=0;in;i++)

couta[i];

return0;

};#includeiostream //解法3:插入排序

usingnamespacestd;

intmain()

{

intn,a[100],i,j,k,temp;

cinn;

for(i=0;in;i++)cina[i];

for(i=0;in;i++){

for(j=i-1;j=0;j--)if(a[i]=a[j])break; //为a[i]寻找插入位置j+1

if(j!=i-1) {

temp=a[i];

for(k=i-1;kj;k--)a[k+1]=a[k];

a[k+1]=temp;

}

}

for(i=0;in;i++)couta[i];

return0;

};例5.4:已知数组a???有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。;3.数组查找;例5.6:学校推出了10名歌手,每个歌手都有唯一编号(0~9)。校学生会想知道这些歌手受欢迎的程序,设了一个投票箱,让每一个同学给自己喜欢的歌手投票,同学们使用歌手编号进行投票。现在学生会找你帮忙统计一下每位歌手获得的票数,并颁发“最受欢迎歌手奖”,该奖项颁发给得票最多的歌手。若有多名歌手并列第一,则均可获奖。;例5.7:输入从小到大排好序的n个元素,找出某元素第一次出现的位置。

输入:输入分三行,第一行是一个正整数n(n1000),第二行是n个整数,第三行为一个整数x表示待查找的元素。

输出:如果x在序列中,则输出x第一次出现的位置,否则输出-1。;4.字符数组与字符串(字符数组的初始化);4.字符数组与字符串(字符串的输入输出);4.字符数组与字符串(C语言的字符串处理函数);例5.8:输入一个以回车结束的字符串,该字符串由数字和字母组成。请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。

输入:输入一个以回车符结束的字符串,长度不超过100,由数字和字母组成。

输出:将转换后的整数乘以2输出,测试数据保证结果在整数范围内;4.字符数组与字符串(C++的字符串处理);例5.9:输入一个1到7之间的数字,表示星期一到星期日,输出相应的英文:Mon、Tue、Wed、Thur、Fri、Sat、Sun。;例5.10:输入一个0和1字符组成的二进制字符串,请转换成十六进制。

输入:输入一个0/1字符串,长度小于100000。(如:11010100101)

输出:输出1行转换后的十六进制。(6A5);例5.11:输入一行字符,统计其中有多少个单词