两道C语言的题,求解(高分)

第一题:请编写函数,对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数。
第二题:
请编写函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数

多谢啦....

第一题:
#include <stdio.h>
float he(float a,float b);
float cha(float a,float b);

void main()
{
float x,y,s,c;
printf("请输入两个浮点数: ");
scanf("%f%f",&x,&y);
s=he(x,y);
c=cha(x,y);
printf("两个浮点数的和值是%.2f\n",s);
printf("两个浮点数的差值是%.2f\n",c);
}
float he(float a,float b)
{
return a+b;
}
float cha(float a,float b)
{
if (a>=b)
return a-b;
else
return b-a;
}
第二题:
#include <stdio.h>
int max(int a,int b,int c);
int min(int a,int b,int c);
void main()
{
int x,y,z;
printf("请输入三个数:");
scanf("%d%d%d",&x,&y,&z);
printf("三个数选出最大数是%d\n",max(x,y,z));
printf("三个数选出最小数是%d\n",min(x,y,z));
}
int max(int a,int b,int c)
{
if (a>=b&&a>=c)
return a;
if (b>=a&&b>=c)
return b;
else
return c;
}
int min(int a,int b,int c)
{
if (a<=b&&a<=c)
return a;
if (b<=a&&b<=c)
return b;
else
return c;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-12
#include <stdio.h>
void for_two_float(float a, float b, float* he, float* cha)
{
*he = a + b;
*cha = a - b;
}
void max_min(float a, float b, float c, float* max, float* min)
{
*max = *min = a;
if (*max < b)
{
*max = b;
}
else
{
*min = b;
}
if (*max < c)
{
*max = c;
}
else if (*min > c)
{
*min = c;
}
}
int main(int argc, char *argv[])
{
float a = 10.0;
float b = 2.8;
float c = 3.4;
float he, cha, max, min;
for_two_float(a, b, &he, &cha);
max_min(a, b, c, &max, &min);
printf("he = %f; cha = %f\n", he, cha);
printf("max = %f; min = %f\n", max, min);

return 0;
}
因为C语言中或者说我的VC2005不支持函数形参的引用调用(float& he),所以只有使用指针达到目的。
第2个回答  2009-05-12
#include <stdio.h>
#include <stdlib.h>

void cal(double num1,double num2,double *sum,double *sub)
{
*sum=num1+num2;
*sub=num1-num2;
}
void maxmin(double num1,double num2,double num3,double *max,double *min)
{
*max=(num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;
*min=(num1>num2?num2:num1)>num3?num3:(num1>num2?num2:num1);
}
int main(int argc, char *argv[])
{

double a=3,b=2,c=5,sum,sub,max,min;
cal(a,b,&sum,&sub);
maxmin(a,b,c,&max,&min);
printf("%lf\n%lf\n%lf\n%lf",sum,sub,max,min);
system("PAUSE");
return 0;
}
第3个回答  2009-05-12
#include <stdio.h>

void func1(float a, float b, float *sum, float *diff)
{
*sum = a + b;
*diff = a - b;
}

void func2(int a, int b, int c, int *max, int *min)
{
*max = ((a > b) ? (a > c ? a : c) : (b > c ? b : c));
*min = ((a < b) ? (a < c ? a : c) : (b < c ? b : c));
}

void main()
{
float a = 3.5f, b = 4.2f;
float sum, diff;
func1(a, b, &sum, &diff);
printf("%f %f\n", sum, diff);
int max, min;
func2(87583, 87574, 87589, &max, &min);
printf("%d %d\n", max, min);

}
第4个回答  2009-05-12
建议你先看看c程序设计

两道C语言的题,求解(高分)
int min(int a,int b,int c){ if (a<=b&&a<=c)return a;if (b<=a&&b<=c)return b;else return c;}

两道很基础的C语言题 求求好心人帮忙给出答案和解析
第一题,从题目看,main中输入了一个字符数组到item,并把这个item传给delnum处理,delnum中的那个循环,是逐个判断s[i]是否是小于'0'或者大于9,即判断s[i]是否非数字,如果非数字,则用s[j++]=s[i]来将内容保存,举个例子,比如输入a9,在delnum中,第一次循环i=0,s[0]为'a',满足if...

C语言常量,两道题求详解
第一题:D 解释:A:0不存在正负 B:‘’中间只能有一个字符,字符串要用“”C:同B 第二题:A 解释:B、C:同上题B、C D:16进制数数要在前面加0x

关于C语言的两道习题,请写出具体的解题步骤。
2>>3 ( 右移3个单位 10 >>3得 1000 8 3<<2(左移2个单位 11<<2 得 000 0 8-0=8

c语言2道选择题求解!最好复解析,方便理解!~
1选D i从3变化到1,j从1变化到2,所以结果是3行,每行2个数字,所以,A、B都不对。输出是i+j,所以每行第一个数字是从大到小,每行第二个数字比第一个数字大1.所以C是错的 2选B I=1,输出第一行,i=2是输出第二行 所以 c是错的 j是从i开始,所以第一行第一个应该是1*1 ......

两道c语言题
第一题 s*=*a++;首先要看懂s*=*a++,这个表达式就是s=s*(乘)*a++(指针a所指向的值)整句的意思就是,从s=a[0]*a[1]*a[2]*……*a[n],s的值就是从a[0]到a[n]的连乘。下面调用的时候,第一次是LB(a,5),a的起始值就是指向1,所以这个的结果为1*2*3*4*5=120 第二次...

请教两道C语言的题目!
此题的正确答案不应该是C而应该是D。因为y的最大长度为8,sizeof(y)自然是8,向y里拷进8个字符后就把'\\0'覆盖了,这个字符串就没有了结束符'\\0',所以strlen(y)大于等于8的任何数都是可能的。此题的正确答案应该是A.1而不是B.2。因为两个4字节的变量紧挨着,地址相差就是1。但有个情况...

两道c语言题,谢谢帮帮忙
我给你第一题的答案:include<stdio.h> include<math.h> void getit(int);bool haveit=false;void main(){ while(true){ int a,i;printf("请输入一个整数\\n这个数以下的完全平方数将全部输出>:");scanf("%d",&a);getit(a);printf(haveit==true? "输出完毕!\\n":"%d 以下没有完全...

高分求两道大一C语言编程题答案,答对的保证再追加100分
2.\/ include <stdio.h> include <malloc.h> void input(int array[], int n){ for(int i = 0; i < n; i++){ scanf("%d", &array[i]);} } int find(int array[], int n, int x){ int count = 0;for(int i = 0; i < n; i++){ if( x == array[i] ){ cou...

请问这两道c语言题目怎么个写法,求告知?
则把i==5的值赋给了num。右:for循环中i的取值只有0 1 2三个数,所以x[i][2-i]有三:x[0][2]、x[1][1]和x[2][0]三项;数组x规正写是——1 2 3 4 5 6 7 8 9 看,x[0][2]第0行第2列==3,x[1][1]第1行第1列==5,x[2][0]第二行第0列==7。

相似回答