没有合适的资源?快使用搜索试试~ 我知道了~
U201714739_金修旭2
需积分: 0 0 下载量 14 浏览量
2022-08-08
22:40:11
上传
评论
收藏 408KB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86386848/0001-8b7122208e83240efe7f9995ef5946dd_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
24页
}测试运行结果:应该将圈中人编号按出圈顺序输出,推测为:3 6 9 2 7 1 8 5 10 4图5-2 源程序修改替换题完善后的测试运行结果上面的程序中使用数
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86386848/bg1.jpg)
实验 5 数组实验
5.1 实验目的
(1) 掌握数组的说明、初始化和使用。
(2) 掌握一维数组作为函数参数时实参和形参的用法。
(3) 掌握字符串处理函数的设计,包括串操作函数及数字串与数之间转换函数
实现算法。
(4) 掌握基于分治策略的二分查找算法和选择法排序算法的思想,以及相关算
法的实现。
5.2 实验内容
5.2.1 源程序改错
下面是用来将数组 a 中元素按升序排序后输出的源程序。分析源程序中存在
的问题,并对源程序进行修改,使之能够正确完成任务。
1 #include<stdio.h>
2 int main(void)
3 {
4 int a[10] = {27, 13, 5, 32, 23, 3, 17, 43, 55, 39};
5 void sort(int [],int);
6 int i;
7 sort(a[0],10);
8 for(i = 0; i < 10; i++)
9 printf("%6d",a[i]);
10 printf("");
![](https://csdnimg.cn/release/download_crawler_static/86386848/bg2.jpg)
11 return 0;
12 }
13 void sort(int b[], int n)
14 {
15 int i, j, t;
16 for (i = 0; i < n - 1; i++)
17 for ( j = 0; j < n - i - 1; j++)
18 if(b[j] < b[j+1])
19 t = b[j], b[j] = b[j+1], b[j+1] = t;
20 }
解答:
(1) 错误修改:
1) 第 7 行函数调用时数组错误,正确形式为:
sort(a,10);
2) 第 18 行程序逻辑错误,正确形式为:
if(b[j] > b[j+1])
3) sort 函数未声明,正确形式为:
void sort(int b[], int n);
(2) 错误修改后运行结果:
预测:将数组 a 中整数按升序排序后输出,为
3 5 13 17 23 27 32 39 43 55
结果如图所示:
![](https://csdnimg.cn/release/download_crawler_static/86386848/bg3.jpg)
图 5-1 源程序改错题 1 的测试运行结果
5.2.2 源程序修改替换
(1) 下面的源程序用于求解瑟夫问题:M 个人围成一圈,从第一个人开始依
次从 1 至 N 循环报数,每当报数为 N 时报数人出圈,直到圈中只剩下一
个人为止。请在源程序中的下划线处填写合适的代码来完善该程序。
1 #include<stdio.h>
2 #define M 10
3 #define N 3
4 int main(void)
5 {
6 int a[M], b[M]; /* 数组 a 存放圈中人的编号,数组 b 存放出圈人的编号
*/
7 int i, j, k;
8 for(i = 0; i < M; i++) /* 对圈中人按顺序编号 1—M */
9 a[i] = i + 1;
10 for(i = M, j = 0; i > 1; i--) {
11 /* i 表示圈中人个数,初始为 M 个,剩 1 个人时结束循环;
12 j 表示当前报数人的位置 */
13 for(k = 1; k <= N; k++) /* 1 至 N 报数 */
14 if(++j > i - 1) j = 0; /* 最后一个人报数后第一个接着报,形成一个圈 */
15 b[M-i] = j? : ; /* 将报数为 N 的人的编号存入数组
![](https://csdnimg.cn/release/download_crawler_static/86386848/bg4.jpg)
b */
16 if(j)
17 for(k = --j; k < i; k++)/* 压缩数组 a,使报数为 N 的人出圈 */
18 ;
19 }
20 for(i = 0;i < M – 1; i++) /* 按次序输出出圈人的编号 */
21 printf(“%6d”, b[i]);
22 printf(“%6d\n”, a[0]); /* 输出圈中最后一个人的编号 */
23 return 0;
24 }
解答:
完善程序
#include<stdio.h>
#define M 10
#define N 3
int main(void)
{
int a[M], b[M]; /* 数组 a 存放圈中人的编号,数组 b 存放出圈人的编
号 */
int i, j, k;
for(i = 0; i < M; i++) /* 对圈中人按顺序编号 1—M */
a[i] = i + 1;
for(i = M, j = 0; i > 1; i--){
/* i 表示圈中人个数,初始为 M 个,剩 1 个人时结束循环;j 表示当前报数
人的位置 */
for(k = 1; k <= N; k++) /* 1 至 N 报数 */
if(++j > i - 1) j = 0;/* 最后一个人报数后第一个人接着报,形成一个圈 */
剩余23页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![avatar](https://profile-avatar.csdnimg.cn/283f3f6969f54316a1caac3c45699df5_weixin_35751194.jpg!1)
13572025090
- 粉丝: 52
- 资源: 313
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 优先编码器除法电微分运算电路 全加器函数发生电路等电路经典Multisim仿真实验源文件合集(25个).zip
- 2331308JS课堂案例.zip
- STM32H750VBT6单片机最小系统开发板AD设计硬件(原理图+PCB+3D封装库)工程文件.zip
- 基于74LS161+ 74LS192芯片实现倒计时定时器Multisim仿真源文件,Multisim10以上版本可打开运行
- 科大讯飞语音引擎 jar包 demo,科大讯飞语音合成引擎3.0,支持4.0系统以上,文字转语音输出.zip
- Java架构面试笔试专题资料及经验(含答案)SpringBoot面试Linux面试专题及答案 合集.zip
- 头歌c语言实验答案tion-model-for-ne开发笔记
- docker配置使用-model-for-networK开发demo
- docker配置使用vaWeb-mas笔记
- c语言连接两个字符串-mas开发笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0