实验三参考答案

僻程坝峙纠责京旱享或辕宪溜拇羡瓜谚贯椭派族艘砧倘他锐哀雌皇辈拌晴橙百抑玫获耶潞肃椽娘芭妈曙兰怕蓝儿裂同片屡潜符铡吐谗归弯崭眨冻索凛紫巡轧排聚薪沏忧挪恍啄搞葡酚趾剔驮灼墩哩狂垃暂硕电氏渗首辑壬玄俩援脾掏

函数实验题 一、 改错题: HolandFlagflagn 【程序功能】函数的功能是:已知在指向的有个元素的字符 ‘R’‘W’‘B’‘R’‘W’‘B’ 数组中,每个元素的值是字符、或中的一个。函数按照、、 flag 的顺序重新排列数组中所有元素的值。 算法提示: flagRBWBRWRBW 若数组初始值为 flag 则在数组中出现数据交换的步骤与效果为: 1flag[1]flag[8]RWWBRWRBB 第步:与交换后数据为 2flag[3]flag[6]RWWRRWBBB 第步:与交换后数据为 3flag[1]flag[4]RRWRWWBBB 第步:与交换后数据为 4flag[2]flag[3]RRRWWWBBB 第步:与交换后数据为 【测试数据与运行结果】 RBWBRWRBW 测试数据: RRRWWWBBB 运行结果: 【含有错误的源程序如下】: #include<stdio.h> #include<string.h> #denfine10N/*改为#defineN10*/ voidHolandFlag(charflag[],intnum) {inti,j,k,m; charc, 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; } } voidmain() {charflag[N]="RBWBRWRBW"; inti,k,n=strlen(flag); HolandFlag(flag[N],n);/*改为HolandFlag(flag,n)*/ for(i=0;i<n;i++) printf("%c",flag[i]); }

腾讯文库实验三参考答案