用c语言 编写函数对三个整数x,y,z 按从小到大的顺序排列,在主函数中调用它,然后输出排序后的三个数
答案:6 悬赏:60 手机版
解决时间 2021-02-12 10:15
- 提问者网友:遁入空寂
- 2021-02-11 12:45
我说的是用c语言编写啊。 代码啊
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-02-11 13:56
你好,解:由柯西不等式
(a^2+b^2+c^2)(x^2+y^2+z^2)>=(ax+by+cz)^2
当a/x=b/y=c/z时取等号
(a^2+b^2+c^2)(x^2+y^2+z^2)>=(ax+by+cz)^2
所以25*36>=30^2
显然此处取等号
所以a/x=b/y=c/z>0
所以a^2/x^2=b^2/y^2=c^2/z^2=(a^2+b^2+c^2)/(x^2+y^2+z^2)=25/36
所以a/x=b/y=c/z=5/6
所以(a+b+c)/(x+y+z)=a/x=b/y=c/z=5/6
那么(2007a+5b+8c)/(2007x+5y+8z)=5/6 23298希望对你有帮助!
(a^2+b^2+c^2)(x^2+y^2+z^2)>=(ax+by+cz)^2
当a/x=b/y=c/z时取等号
(a^2+b^2+c^2)(x^2+y^2+z^2)>=(ax+by+cz)^2
所以25*36>=30^2
显然此处取等号
所以a/x=b/y=c/z>0
所以a^2/x^2=b^2/y^2=c^2/z^2=(a^2+b^2+c^2)/(x^2+y^2+z^2)=25/36
所以a/x=b/y=c/z=5/6
所以(a+b+c)/(x+y+z)=a/x=b/y=c/z=5/6
那么(2007a+5b+8c)/(2007x+5y+8z)=5/6 23298希望对你有帮助!
全部回答
- 1楼网友:轮獄道
- 2021-02-11 18:47
网上手
- 2楼网友:执傲
- 2021-02-11 18:02
完全符合要求,测试通过,给分来!
#include<stdio.h>
void gc( int a, int b, int c)
{
int k;
if(a>b)
{
k=a;
a=b;
b=k;
}
if(a>c)
{
k=a;
a=c;
c=k;
}
if( b>c)
{
k=b;
b=c;
c=k;
}
printf("a=%d,b=%d,c=%d",a,b,c);
}
void main()
{
int x,y,z;
printf("input x,y,z:");
scanf("%d,%d,%d",&x,&y,&z);
gc(x,y,z);
}
- 3楼网友:雪起风沙痕
- 2021-02-11 16:36
完全符合要求,测试通过,给分来
- 4楼网友:不想翻身的咸鱼
- 2021-02-11 15:57
直接写个 没有编译 有错误自己修改
void sort(int x,int y,int z){
int tp;
if(y<x){ tp=x;x=y;y=tp;}//swap(x,y);
if(z<y){ tp=y;y=z;z=tp;}
if(y<x){ tp=x;x=y;y=tp;}
printf("%d,%d,%d",&x,&y,&z);
}
- 5楼网友:佘樂
- 2021-02-11 15:18
#include<stdio.h>
void sort(int *p, int *q, int *t)
{
int temp;
if(*p > *q)
{
temp = *p;
*p = *q;
*q = temp;
}
if(*p > *t)
{
temp = *t;
*t = *p;
*p = temp;
temp = *q;
*q = *t;
*t = temp;
}
else if(*q > *t)
{
temp = *q;
*q = *t;
*t= temp;
}
}
main()
{
int num1,num2,num3;
int *p,*q,*t;
p = &num1;
q = &num2;
t = &num3;
printf("please input 3 numbers:");
scanf("%d%d%d",p,q,t);
sort(p,q,t);
printf("%d %d %d\n",*p,*q,*t);
}
测试通过了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯