首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCH码降序排列。 例如,原来的字符串为:CEAedca,排序后输出为:CedcEAa。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCH码降序排列。 例如,原来的字符串为:CEAedca,排序后输出为:CedcEAa。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main
admin
2020-07-28
62
问题
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCH码降序排列。
例如,原来的字符串为:CEAedca,排序后输出为:CedcEAa。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<ctype.h>
3 #include<string.h>
4 void fun(char *s,int num)
5 {
6
7 }
8 NONO()
9 {
10 /*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
11 char s[10];
12 FILE *rf,*wf ;
13 int i=0;
14 rf=fopen(’’in.dat’’,’’r’’);
15 wf=fopen(’’out.dat’’,’’w’’);
16 while(i<10) {
17 fgets(s,10,rf);
18 s[7]=0 ;
19 fun(s,7);
20 fprintf(wf,’’%s\n’’,s);
21 i++;
22 }
23 fclose(rf);
24 fclose(wf);
25 }
26 main()
27 {
28 char s[10];
29 printf(’’输入7个字符的字符串:’’);
30 gets(s);
31 fun(s,7);
32 printf(’’\n%s’’,s);
33 NONO();
34 }
选项
答案
1 char t; 2 int i,j; 3 for(i=1;i<num-2;i++) 4 //对n个元素进行循环选择 5 for(j=i+1;j<num-1;j++) 6 if(s[i]<s[j]) 7 //将str[i]设为最大值,和剩下的j~num-1进行比较 8 { t=s[i]; 9 s[i]=s[j]; 10 s[j]=t; 11 }
解析
选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一个元素交换,接着从剩下的num-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
转载请注明原文地址:https://kaotiyun.com/show/AG3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中P#为患者编号,Pn为患者姓名,Pg为性别,By为出生日期,Tr(P#,D#,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。检索在1号医生处就诊的男性病人姓名的表达
程序测试的目的是
构成计算机软件的是
C语言中char类型数据占字节数为
有以下程序main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序的运行结果是
有以下程序structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("
设有定义:char*c;以下选项中能够使c正确指向一个字符串的是
关于do循环体while(条件表达式);以下叙述中正确的是
设表的长度为n。在下列结构所对应的算法中,最坏情况下时间复杂度最低的是
线性表的长度为n。在最坏情况下,比较次数为n-1的算法是
随机试题
人生目的主要回答
假性糖尿见于
Doyouthinkshoppingonlinewill______taketheplaceofshoppinginstores?
下列各项行为中,不能适用我国《刑法》的是()。
刑罚权包括()。
“是就是,不是就不是,除此之外,都是鬼话”,这一观点的错误在于( )
(2015年)设函数f(x)在定义域I上的导数大于零,若对任意的x0∈I,由线y=f(x)在点(x0,f(x0))处的切线与直线x=x0及x轴所围成区域的面积恒为4,且f(0)=2,求f(x)的表达式。
有以下程序#includevoidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=p+1;*q=*q+
Scentis,afterall,thesensethatsciencesayshasthestrongestabilitytoevokememories,ortriggeremotionsandmoods.
Therewasabigholeintheroadwhich______thetraffic.
最新回复
(
0
)