资源描述:
《信息学竞赛——一维数组(C++)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、史芊芊2017暑期信息学竞赛——一维数组史芊芊01数组是什么?史芊芊唉,有这么多不同主题的书。在哪里才能找到有关中国音乐的书呢?文学类中国音乐类计算机类西方音乐类为什么要使用数组3-3内存数组120容器65数组的元素中保98存的物品4日常生活中的容器程序中的数组PART01数组的概念•数组是可以在内存中连续存储多个元素的结构•数组中的所有元素必须属于相同的数据类型number1.5323.21数组元素下标0.090下标标明了元素在数45.3987组中的位置数组名number[4]数组大小史芊芊PART01一维数组PAR
2、T低地址数组下标从0开始。一维数组的数组元素在内存中按顺序存放。高地址史芊芊从键盘输入5个整数,保存到数组a中;再逆序输出。intmain(){inta[5];scanf(“%d”,&a[0]);scanf(“%d”,&a[1]);scanf(“%d”,&a[2]);scanf(“%d”,&a[3]);scanf(“%d”,&a[4]);printf(“%d”,a[4]);printf(“%d”,a[3]);printf(“%d”,a[2]);printf(“%d”,a[1]);printf(“%d
3、”,a[0]);}从键盘输入5个整数,保存到数组a中;再逆序输出。inta[5];scanf(“%d”,&a[0]);scanf(“%d”,&a[1]);inti,a[5];scanf(“%d”,&a[2]);scanf(“%d”,&a[3]);for(i=0;i<5;i++)scanf(“%d”,&a[4]);scanf(“%d”,&a[i]);printf(“%d”,a[4]);printf(“%d”,a[3]);for(i=4;i>=0;i--)printf(“%d”,a[2]);printf(“
4、%d”,a[i]);printf(“%d”,a[1]);printf(“%d”,a[0]);}史芊芊一维数组应用举例例1.1将任意一个十进制数转换成二进制数,然后以二进制数形式输出。算法分析:1、十进制到二进制数转换原理N(aa......aa)2、方法nn1102nn110a2a2......a2a2例把十进制数nn591转换成二进制数10n1n202(a2a2......a2)ann110259余1Na是的余数229余102214余027余123余121
5、余10111011(59)10=(111011)2史芊芊intmain(){inti=0,n,d[40];scanf(“%d”,&n);while(n>0){d[i++]=n%2;n=n/2;}for(i--;i>=0;i--)printf(“%1d”,d[i]);printf(“”);}史芊芊02一维数组练习PART04一维数组的应用1找出数组中的最大值把一个数组第1位上的元素放到最后位置,第2~n个元素依次向前移一位。1234最大值元素的删除元素的移动元素的插入把一个数组的第X个位置的在一个数组的第X个位置插元
6、素删除,然后输出删除入一个新的数y。后的数组。史芊芊史芊芊05代码提交后的反馈信息5.MemoryLimitExceed1.Queuing内存超出。每道题目都有规定内存限制,程序申请了程序正在等待队列中,等待编译和执行。过多的内存,就会返回这个错误。2.Accepted6.WrongAnswer程序通过了所有的测试,最后的答案也是正错误结果。这是比较常见的错误信息。说明程序算法确的。有问题,需要修改。如果发现这个信息返回在第二个3.PresentationError或者之后的测试案例中,那么有可能没有考虑到一些格式错误
7、。说明输出是正确的,可能在什么极端的情况。地方多输出了一个空行或者空格,需要再修7.CompileError改输出格式。编译错误。程序没有通过编译。一般系统会给出编译4.TimeLimitExceed错误信息,可以查找为什么没有通过编译。应该先在IDE中进行编译测试之后再提交到评测系统中。时间超出。每道题目都有规定时间限制,程序没有在规定时间执行完,就会返回这个信8.RuntimeError息。一般需要修改输入输出的方式或者程序运行时错误。一般有这几种情况:数组越界、除零、的算法才能通过这道题目的评测。空指针、堆栈溢出
8、。出现这个信息,表示程序中存在漏洞,需要仔细查找。PART01一维数组的应用1——找出数组中的最大值PART1、题目描述给出n个浮点数,求其中的最大值(保留4位小数)(n<=100)。2、输入格式:4、样例:输入包含两行:第一行为一个整数n;输入:5接下来的一行每行1个浮点数。1.11.21.31.31.53、输出格式:输出:1.