求C语言习题答案

1.从键盘任意输入三个整数,按从小到大顺序输出。
2.判断ax2+bx+c=0 (a不等于0)方程的有几个解,如果有解则输出如果无解则输出无解。系数a、b、c由键盘输入。
希望有源代码啊
一定加分

第1个回答  2008-11-23
include<stdio.h>
main()
{ int a,b,c,t;
printf("please input a b c\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
t=a;a=b;b=t;
if(a>c)
t=a;a=c;c=t;
if(b>c)
t=b;b=c;c=t;
printf("%d ,%d ,%d\n",a,b,c);
}

算法思想:先拿a分别和b,c做比较,如果a比它们大,就把两个数的会值换过来(通过中间变量t),确保a是最小的,接下来比较b和c,如果b>c则把bc的值互换,确保b<c。接下来按次序打印a,b,c。

第二题就看楼上几位的吧
第2个回答  2008-11-23
1 互相比较就行了
#include<stdio.h>
main()
{
int a,b,c,t;
scanf("%d%d%d", &a, &b, &c);
if(a<b){t=a;a=b;b=t;}
if(a<c){t=a;a=c;c=t;}
if(b<c){t=b;b=c;c=t;}
printf("%d %d %d",a,b,c);
return 0;
}
2 用判别式 b*b-4*a*c,若大于0有两根,等于0有一根,小于0无解
#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,d;
scanf("%f%f%f", &a, &b, &c);
d = b*b-4*a*c;
if(d>0)printf("有2个根");
else if(d==0)printf("有1个根");
else if(d<0)printf("没有根");
return 0;
}
没有测试,你调调本回答被提问者采纳
第3个回答  2008-11-23
1-比较赋值
#include "stdio.h"
void main()
{
int a,b,c,t;
printf("input a,b,c");
scanf("%d%d%d"&a&b&c);
if(a<b){t=a;a=b;t=b;}
if(a<c){t=c;a=c;t=c;}
if(b<c){t=c;b=c;t=c;}
printf("%d%d%d\n",a,b,c);
}
2-基本上和上差不多格式上
小弟也没有学多长时间
如有错误请理解哦
第4个回答  2008-11-23
1.
#include<stdio.h>
int main()
{
int a,b,c;
int temp;
printf("Enter 3 numbers:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("\n%d,%d,%d",a,b,c);
return 1;
}
2.
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c;
double x1,x2;
double delta;
delta=b*b-4.0*a*c;
if(delta<0)
{
printf("No Answer\n");
return 0;
}
if(delta<1.0e-7)
{
printf("One Answer:\n");
x1=-b/(2.0*a);
prinf("ans=%f\n",x1);
return 1;
}
printf("Two Answers:\n");
delta=sqrt(delta);
x1=(-b+delta)/(2.0*a);
x2=(-b-delta)/(2.0*a);
printf("ans=\n\t%f,\n\t%f",x1,x2);
return 1;
}
第5个回答  2008-11-23
看书去,谭浩强书上的例题。
相似回答