下载此文档

实验三参考答案.doc


文档分类:高等教育 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
函数实验题
改错题:
【程序功能】函数HolandFlag的功能是:已知在flag指向的有n个元素的字符数组中,每个元素的值是字符‘R’、‘W’或‘B’中的一个。函数按照‘R’、‘W’、‘B’的顺序重新排列flag数组中所有元素的值。
算法提示:
若flag数组初始值为RBWBRWRBW
则在flag数组中出现数据交换的步骤与效果为:
第1步:flag[1]与flag[8]交换后数据为 RWWBRWRBB
第2步:flag[3]与flag[6]交换后数据为 RWWRRWBBB
第3步:flag[1]与flag[4]交换后数据为 RRWRWWBBB
第4步:flag[2]与flag[3]交换后数据为 RRRWWWBBB
【测试数据与运行结果】
测试数据:RBWBRWRBW
运行结果:RRRWWWBBB
【含有错误的源程序如下】:
#include<>
#include<>
#denfine 10 N /*改为#define N 10 */
void HolandFlag(char flag[],int num)
{int i,j,k,m;
char c,color[3]={B,W,R}; /*改为color[3]={'B','W','R'}*/
m=num;
for(k=0;k<2;k++)
for(i=0;i<m;i++)
if(flag[i]==color[k])
{for(j=m-1;j>i;j--)
if(flag[j]==color[k]) /*改为if(flag[j]!=color[k])*/
{c=flag[i];flag[i]=flag[j];flag[j]=c;
m--;
break;
}
if(i==j) m=i;
}
}
void main()
{char flag[N]="RBWBRWRBW";
int i,k,n=strlen(flag);
HolandFlag(flag[N],n); /*改为HolandFlag(flag,n)*/
for(i=0;i<n;i++)
printf("%c",flag[i]);
}
【要求】
1、,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2、改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。
二、编程题:
1、【程序功能】
用一组整数验证命题:“任意一个百位数字与个位数字不同的三位正整数n1在经过以下操作后一定会变换到1089:将n1的百位数字与个位数字交换得到n2;求n1与n2差的绝对值得到n3;将n3的百位数字与个位数字交换得到n4;求n3与n4的和得到n5,n5一定是1089。若n1、n3是一位数或两位数,则在高位补0使其成为三位数。”
例如:n1:123,n2:321,n3:198(321-123),n4:891,n5:1089(198+891)
【编程要求】
(1)编写函数int fun(int a[],int b[],int n),其功能是用a指向数组的前n个整数验证上述

实验三参考答案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xunlai783
  • 文件大小42 KB
  • 时间2018-05-18