问答题
下列给定程序中,函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。
例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b=34.0,c=120。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动:main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(float*a,float*b,float*c)
/********found********/
float*k;
if(*a<*b)
k=*a;
*a=*b;
*b=k;
/********found********/
if(*a,*c)
k=*c;
*c=*a;
*a=k;
if(*b<*c)
k=*b;
*b=*c;
*c=k;
main()
float a,b,c;
printf("Input a b c:");
scanf("%f%f%f",&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
fun(&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
【参考答案】
float k; (2)if(*a<*c)
点击查看答案&解析
<上一题
目录
下一题>
热门
试题
问答题
下列给定程序中,函数fun的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。 例如,若a所指数组中的数据为:1,2,3,4,S,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #incIude<stdio.h> #define N 9 void fun[int a[],int n) int i,t,p; ********found******** p=(n%2==0)n 2;n 2+ (1) ; for(i=0;i<n 2;i++) f=a[i]; ********fodnd******** a[i]=a[p+ (2) ]; ********found******** (3) =t; maln() int b[N]=1,2,3,4,5,6,7,8,9,i; printf( nThe original data: n ); for(i=0;i<N;i++) printf( %4D,b[i]); printf( n ); fun(b,N); printf( nThe daca after moving: n ); for(i=0;i<N;i++) printf( %4d ,b[i]); printf( n );
点击查看答案&解析
问答题
学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #define N 16 typedef struct char num[10]; int s; STREC; int fun(STREC*a,STREC*b) void main() STREC s[N]= GA005 ,85, GA003 ,76, GA002 ,69, GA004 ,85, GA001 ,91, GA007 ,72, GA008 ,64, GA006 ,87, GA015 ,85, GA013 ,91, GA012 ,64, GA014 ,91, GA011 ,66, GA017 ,64, GA018 ,64, GA016 ,72; STREC h[N]; int i,n; n=fun(s,h); printf( The%d highest score: n ,n); for(i=0;i<n;i++) printf( %s%4d n ,h[i],num,h[i],s); *输出最高分的学号和成绩* printf( n );
点击查看答案&解析
相关试题
学生的记录由学号和成绩组成,N名学生的数...
下列给定程序中,函数fun的功能是:将形参a...