首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数mare和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 1 #include
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数mare和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 1 #include
admin
2018-09-27
51
问题
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:部分源程序存在PROG1.C中,请勿改动主函数mare和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #include<stdio.h>
2 void NONO();
3 void fun(int *a,int *b,int *c,int*d)
4 {
5 }
6 main()
7 {int a,b,c,d;
8 printf(’’请输入4个整数:’’);
9 scanf(’’%d%d%d%d’’,&a,&b,&c,&d);
10 printf(’’原始顺序:%d,%d,%d,%d\n’’,a,b,C,d);
11 fun(&a,&b,&c,&d);
12 printf(’’处理后:%d,%d,%d,%d\n”,a,b,c,d);
13 NONO();
14 }
15 void NONO()
16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
17 FILE *fP,*wf;
18 int i,a,b,c,d;
19 fp=fopen(’’in.dat’’,’’r’’);
20 wf=fopen(’’out.dat’’,’’w’’);
21 for(i=0;i<5;i++)
22 {fscanf(fp,’’%d%d%d%d’’,&a,&b,&c,&d);
23 fun(&a,&b,&C,&d);
24 fprintf(wf,’’a=%d,d=%d\n’’,a,d);
25 }
26 fclose(fp);
27 fclose(wf);}
选项
答案
1 void fun(int*a,int*b,int*c,int*d) 2 {int t; 3 if(*a<*b){t=*a;*a=*b;*b=t;} 4 if(*a<*c)(t=*a;*a=*c;*c=t;} 5 if(*a<*d){t=*a;*a=*d;*d=t;} 6 if(*b<*c){t=*b;*b=*c;*c=t;} 7 if(*b<*d){t=*b;*b=*d;*d=t;} 8 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://www.kaotiyun.com/show/B8xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。structlink{intdata;st
以下程序的输出结果是()。inta=7,b,C;b=++a;C=a++;printf("%d,%d,%d",a,b,C);
若变量c为char类型,能正确判断出c为小写字母的表达式是()
设有如下程序段:intx=2002,y=2003;printf(“%d\n”,(x,y));则以下叙述中正确的是
下列程序输出的结果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",
用树形结构表示实体之间联系的模型是()。
下列关键字中,不属于C语言变量存储类别的是______。
已知字母A的ASCII码为65。以下程序运行后的输出结果是【】。main(){chara,b;a=’A’+’5’-’3’;b=a+’6’-’2’;printf("%d%c\n",a,B);}
在数据库设计的四个阶段中,为关系模式选择存取方法应该是在______阶段。
随机试题
CT机的硬件结构组成中不包括
某病房近期出现了护理差错和患者投诉,两位科护士长介入帮助整改。病房护士长针对问题和整改建议进行工作,但对于两位科护士长的部分不同要求感到无所适从。从管理的角度来看,违背的组织原则是
某公司向区教委申请《办学许可证》,遭拒后向法院提起诉讼,法院判决区教委在判决生效后三十日内对该公司申请进行重新处理。判决生效后,区教委逾期拒不履行,某公司申请强制执行。关于法院可采取的执行措施,下列哪些选项是正确的?(2010年卷二第87题)
授意、指使、强令他人销毁、隐匿应当保存的会计资料,尚不构成犯罪的,可处( )的罚款。
以下可以为企业提供短期资金融通手段的货币市场工具是()。Ⅰ.商业票据Ⅱ.银行承兑汇票Ⅲ.股份回购协议Ⅳ.短期融资券
基本存款账户是存款人的主办账户,一个单位只能开立一个基本存款账户。()
儿童自我评价是自我意识发展的标志,包括()。(2004年6月三级真题)
阅览室看书的学生中,男生占25%,又来了一些学生后,学生总人数增加25%,男生占总数的24%,男生增加了()。
中国古人将阴历年的大月定为30天,小月定为29天,一年有12个月,即354天,比阳历年少了11天多,怎么办呢?在19个阴历年里加了7个闰月,就和19个阳历年的长度几乎相符。这个周期的发明巧妙地解决了阴阳历调和的难题,比希腊人梅冬的发明早了160年。这段文字
某招考职位规定:凡通过英语专业八级、参加过支教活动的英语专业应届毕业生均有资格报考该职位。张华是北京某名牌大学英语专业的一名应届毕业生,却没有资格报考该职位。由此一定可以推出的是:
最新回复
(
0
)