首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROGI.C中,请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include voi
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。 注意:部分源程序存在PROGI.C中,请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include voi
admin
2020-06-16
77
问题
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:部分源程序存在PROGI.C中,请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
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; 1++ )
{fscanf(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);
fclose (wf);}
选项
答案
3 void fun(int *a,int *b,int *c,int *d) 4 {int t; 5 if(* a<* b){t=* a; * a=* b; * b=t; } 6 if(* a<* c){t=* a; * a=* c;* c=t;} 7 if(* a<* d){t=* a; * a=* d;* d=t; } 8 if(* b<*c){t=* b; * b=* c; * c=t; } 9 if(* b<* d){t:* b; * b:* d; * d=t; } 10 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/OKCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#includeintfun(intn){inta;if(n==1)return1;a=n+fun(n一1);return(a);}main()
对于if(表达式)语句,以下叙述中正确的是()。
下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入"THIsisaboot”,则应输出是10220。请改正程序中的错误,使它能得出正确的结果。
下列程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在W所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。例如,s所指数组有14个元素,则只对
下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也
函数fun的功能是:将a、b中的两个正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b:12。调用该函数后,c=5241。注意
设有定义:struetcomplex{intreal,unreal;}data1={1,8},data2;则下列赋值语句中错误的是()。
若有定义语句:char*s1="OK",*s2="ok";,以下选项中,能够输出“OK”的语句是()。
下列定义数组的语句中正确的是()。
以下选项中能用作数据常量的是()。
随机试题
颌面部危险三角区内的化脓性感染处理不当最易引起的并发症是
某施工单位承接了某山区二级公路4.5km的施工任务。合同段有一段长450m的两车道隧道。隧道位于软弱围岩地段。在隧道施工方案中有如下要求:(1)在隧道施工期间,由专职安全员作为安全生产的第一责任人,对隧道施工安全生产全面负责;
会计人员无论短期离职还是长期离职都应办理会计工作交接手续,且由下列人员监交()。
下列各项中,说明了投资方案单位投资所获得的净收益的是()。
某工业企业增值税一般纳税人2017年9月购销业务情况如下:(1)购进生产原料一批,已验收入库取得的防伪税控系统开具的增值税专用发票上注明的价、税款分别为23万元、3.91万元。(2)购进钢材20吨,未入库,取得的防伪税控系统开具的增值税
在一个C类网络中,()是无效的IP地址。
根据《刑事诉讼法》的相关规定,下列哪一案件是由高级人民法院管辖的第一审刑事案件?()
北京故宫博物院积极开辟新思路,不仅让雍容华贵的朝珠与现代的电子耳机实现了“合体”,还推出了“朕就是这样的汉子”折扇、顶戴花翎官帽防晒伞等文化创意产品。这一做法:
根据代理权产生的根据不同,可将代理分为()。
脸谱的颜色使观众对人物的善恶美丑一目了然。
最新回复
(
0
)