首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #inolude<stdi
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #inolude<stdi
admin
2019-09-03
68
问题
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#inolude<stdio.h>
void NONO();
void fun(int*a,int*b,int*c,int*d)
{
}
main()
{int a,b,c,d;
printf("请输入4个整数:");
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("原始顺序:%d,%d,%d,%d\n",a,b,c,d);
fun(&a,&b,&C,&d);
printf("处理
后:%d,%d,%d,%d\n",a,b,c,d);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,a,b,c,d;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<5;i++)
{facanf(fp,"%d%d%d%d",&a,&b,&c,&d);
fun(&a,&b,&c,&d);
fprintf(wf,"a=%d,d=%d\n",a,d);
}
fclose(fp);
fclsee(wf);}
选项
答案
void fun(int*a,int*b,int*c,int *d) {int t; if(*a<*b){t=*a;*a=*b;*b=t;} if(*a<*c){t=*a;*a=*c;*c=t;} if(*a<*d){t=*a;*a=*d;*d=t;} if(*b<*c){t=*b;*b=*c;*c=t;} if(*b<*d){t=*b;*b=*d;*d=t;} if(*c<*d){t=*c;*c=*d;*d=t;}}
解析
本题中的函数功能主要是在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。这个题目类似于排序,但是又不是严格的排序,只要重新排序最大值和最小值的位置即可。所以类似于排序,这一题需要相互比较4个数字,然后进行位置的调换。
基本思路就是比较相邻的两个数字,如果靠近a的数字比靠近d的数字要大,就不用进行交换,如果靠近a的数字比靠近d的数字小,就进行交换,这样的话最大的数字就会慢慢交换到a的位置,然后最小的数字就会慢慢交换到d的位置。所以根据分析我们就要用到if语句来进行判断和处理,只要经过几轮的if判断大小然后交换,就能实现题目条件所给出的位置的重置,得到要求的结果。
首先在主函数main中我们需要的就是四个数字,这四个数字需要手动输入,件程序代码第13~15行,四个数字输入完城后就可以进入fun函数进行数据处理了。进入到fun函数中,只要从a到d进行比较,按照一开始的规则即可,如果a大于b,不变,比较a与c,若a小b,a与b交换位置,交换过后a就大于b了,这样就进行a与c的比较;a与c的比较同理,这样的循环比较,就能发现,每比较一次,较大的数字就能交换到a的位置,较小的数字就离a越来越远,也就是到了d的位置,这样就完成了题目所给出的要求了,最大的数字放在a中,最小的数字放在d中。当新的排序排好后,就可以返回主函数进行输出了。
转载请注明原文地址:https://kaotiyun.com/show/AKRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在软件开发中,需求分析阶段产生的主要文档是
下面不属于软件设计原则的是
若X和Y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
有以下程序#includemain(){inta=2,b;b=a<<2;printf("%d\n",b);}
若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句是
有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("
有以下程序#includefun(inta,intb){intstaticm=0,i=2;i=i+m+1;m=i+a+b;returnm;}main(){intk=4,m=1,p;P=fun(k,m)
有以下程序intd=1;voidfun(intP).{intd=5;d+=p++;printf("%d",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}程序的输
以下不合法的数值常量是
软件(程序)调试的任务是
随机试题
图书教材的验收一般分为质量验收和()。
市场分析方法中的竞争者一般是指那些与本企业提供的产品或服务相类似并有相似目标顾客和相似市场的企业。
营养不良性钙化常见于
甲手持匕首寻找抢劫目标时,突遇精神病人丙持刀袭击。丙追赶甲至一死胡同,甲迫于无奈,与丙搏斗,将其打成重伤。此后,甲继续寻找目标,见到丁后便实施暴力,用匕首将其刺成重伤,使之丧失反抗能力。此时甲的朋友乙驾车正好经过此地,见状后下车和甲一起取走丁的财物(约2万
社会服务者不得向第三方透露服务对象的任何信息,体现了社会工作价值观的()原则。
对流体智力和晶体智力在人的一生中发展变化趋势的正确描述是()
2015年10月19日上午10时许,新城分局巡警小李和小王在辖区内武装巡逻,行至花园街时,发现两名男子正从东兴小区灌木丛中钻出来,其中一人背着一件大号双肩包。小李和小王上前拦截这两名男子,实施盘查。当小李表明警察身份,告知依法进行盘查时,被盘查的一名男
以下哪项最可能是李研究员所要说明的?人文教育从表面上看,好像只是传授文史哲方面的知识。尤其是在现在的学科体制下,一切教育似乎都可以量化为客观知识和能力,如英语的等级考试。实际上人文教育是通过对文史哲的学习,通过对人类千百年积累下来的成果的吸纳和认同,使
设函数z=f(x,y)(xy≠0)满足,则dz=___________.
Usuallyverticalstripesgivea______impressionofgreaterheight.
最新回复
(
0
)