C语言数组练习题
输入格式 输入有 2 行,第 1 行为 1 个正整数,表示所生成的随机数的个数: N 第 2 行有 N 个用空格隔开的正整数,为所产生的随机数。 输出格式 输出也是 2 行,第 1 行为 1 个正整数 M,表示不相同的随机数的个数。第 2 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。 样例 1 样例输入 1 10 20 40 32 67 40 20 89 300 400 15 样例输出 1 8 15 20 32 40 67 89 300 400
数组练习题
1. 输入两个正整数 A 和 B,其中 A、B 都小于 32767,求 A/B 的值。要求计算 结果精确到小数点后 N(1≤N≤200)位。(★★★)
(测试数据: ①输入 A=1,B=1997,N=25; 答案:0.0005007511266900350525788 ②输入 A=19997,B=197,N=15; 答案:101.507614213197969)
(算法分析:开始选举之前用 n 个数组存放数 1,当报数为 3 的倍数时,更改存放的数为 0(0 表示淘汰出局),直到最后只有两个 1 为止)
(测试数据:N=8; 答案:4)
4. 明明的随机数 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计 算机生成了 N 个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只 保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把 这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去 重”与“排序”的工作。
2. 约瑟夫问题:N 个人围成一圈,从第一个人开始报数,数到 M 的人出圈;再 由下一个人开始报数,数到 M 的人出圈;……,输出依次出圈的人的编号。N、 M 由键盘输入。(★★★)
(测试数据 N=8,M=3; 答案:3、6、1、5、2、8、4、7)
3. n 只猴子选大王,选举办法如下:从头到尾 1、2、3 报数,凡报 3 的退出;余 下的从尾到头 1、2、3 报数,凡报 3 的退出;余下的又从头到尾报数,还是报 3 的退出;依此类推,当剩下两只猴子时,取这时报数报 1 的为王。若想当猴 王,请问当初应占据什么位置?(