首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #inolude<stdi
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #inolude<stdi
admin
2019-09-03
29
问题
请编写函数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://jikaoti.com/ti/tMf0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c一(’a’-’A’);C++;}}voidmain(){char
以下函数按每行8个输出数组中的数据:voidfun(int*w,intn){inti;for(i=0;i<n;i++){______________printf("%d",w[i]);}printf
若X和Y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
有以下程序main(){inta=1,b=2,c=3,x;x=(a^b)&c;’printf("%d\n",x);}程序的运行结果是
有两个关系R和S如下:由关系R通过运算得到关系S,则所使用的运算为
设有定义:charp[]={’1’,’2’,’3’),*q=p;以下不能计算出一个char型数据所占字节数的表达式是
软件(程序)调试的任务是
以下程序依次把从终端输入的字符存放到f文件中,用#作为结束输入的标志,则在横线处应填入的选项是#includemain(){FILE*fp;charch;fp=fopen("fname","w");while((ch=getc
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改
某二叉树中有15个度为1的节点,16个度为2的节点,则该二叉树中总的节点数为()。
随机试题
在基期成本费用水平的基础上,结合预算期业务量及有关降低成本的措施,通过调整有关原有成本项目而编制的预算,称为()。
对条带状发育的油层,堵水要堵掉主流线条带上含水低的井点。()
当达到K+平衡电位时
结构中不含咪唑环的血管紧张素Ⅱ受体拮抗剂是
某多层民用建筑,采用现浇钢筋混凝土框架结构,建筑平面形状为矩形,抗扭刚度较大,属规则框架,抗震等级为二级;梁、柱混凝土强度等级均为C30。平行于该建筑短边方向的边榀框架局部立面如题图所示。假定框架梁端截面(在B轴柱边处)上部和下部配筋分别为625和4
对于建设项目包含多个呈现点声源性质的情况,项目边界往外( )评价范围一般能满足一级评价的要求。
在项目融资过程中,评价项目风险因素和选择项目融资方式所处的项目融资阶段分别为( )阶段。
下列住宅的房间中,应有天然采光和通风的有()。
下列关于Access数据流特点的叙述中,错误的是
某企业员工小韩需要使用Excel来分析采购成本并进行辅助决策。根据下列要求,帮助她运用已有的数据完成这项工作。在工作表“经济订货批量分析”中,为单元格C2:C5按照下表要求定义名称:
最新回复
(
0
)