----------------解决方案--------------------------------------------------------
这个还是谭浩强书上的习题
我记得是第二章吧(不是有习题答案吗?你可以去买的!)
1.有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改酱油,B瓶则相反)
// 定义一个C, C=A;A=B;B=C
2.依次将10个数输入,要求将其中最大的数输出
// 先判断头两个数的大小,让较大的数字和下一个数比较,这样循环10次,输出最大数就可以了
3.有3个数a,b,c,要求按大小顺序把它们输出
// 这题和上边的方法类似,先判断最大的,让 max= x,再对剩下的两个数判断,大小就可以了
4.求1+2+3+...+100
// 有两种方法,一种一个个加上去,另一个数学等差数列求和
5.判断一个数n能否同时被3和5整除
// 看它能不能被15整除即可
6.将100-200之间的素数输出
// 这个比较麻烦,推荐你买习题书看看,思路是这样的,让这个看看能不能被 1到 根号(这个数)整除,如果可以,就不输出,如果不可以,就输出,然后这个数自加,这样循环下去
7.求两个数m和n的最大公约数
// 先较大的数被较小的数取模(如果是0,就直接输出较大数),然后,让较小的数乘以这个模就好
8.求方程式axx+bx+c=0的根,分别考虑:1.有两个不等的实根;2.有两个相等的实根
// a=0,有一个根;a不等0,判断“b*b-4*a*c”和0的大小,如果大于0,有2个不等实数根,如果等0,2个相等根,如果小于0,没有实数根
----------------解决方案--------------------------------------------------------
哎 这么总行了吧?
#include <stdio.h>
#include <math.h>
void Display1(float a,float b,float c)
{
float k;
float x,y;
k=b*b-4*a*c;
x=(-b)/(2*a);
y=(-b)/(2*a);
printf("x=%f\n",x);
printf("y=%f\n",y);
}
void Display2(float a,float b,float c)
{
float k;
double p,q;
k=b*b-4*a*c;
p=(-b)/(2*a);
q=sqrt(-k)/(2*a);
printf("x=%lf+%lf*i\n",p,q);
printf("y=%lf-%lf*i\n",p,q);
}
void Display3(float a,float b,float c)
{
float k;
double x,y;
k=b*b-4*a*c;
x=(-b+sqrt(k))/(2*a);
y=(-b-sqrt(k))/(2*a);
printf("x=%lf\n",x);
printf("y=%lf\n",y);
}
void main()
{
float a,b,c,d;
printf("请输入方程系数:\n");
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if (d==0)
{
printf("方程的根为:\n");
Display1(a,b,c);
}
else if(d<0)
{
printf("方程的根为:\n");
Display2(a,b,c);
}
else
{
printf("方程的根为:\n");
Display3(a,b,c);
}
}
----------------解决方案--------------------------------------------------------
这么小看这个题目,要是书上没有这样的例子,没有学过极限的,不一定能想到那上面去
这个是2元一次方程组,应该用不上牛顿迭代之类的吧.
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
这个是2元一次方程组,应该用不上牛顿迭代之类的吧.
axx+bx+c=0
他这个地方的axx应该是ax^2的意思吧,还有一点,怎么也看不到二元啊,要说也是一元一次吧
----------------解决方案--------------------------------------------------------
应该是一元二次.
----------------解决方案--------------------------------------------------------
唉,是我想错了,数学学得太多了,什么问题都想用数学来解决
----------------解决方案--------------------------------------------------------
这种方程直接分类套公式就行了!
----------------解决方案--------------------------------------------------------
int i,n;
double term,ex,x;
printf("enter x,n");
scanf("%lf%d",&x,&n);
ex=term=1.0;
for(i=1;i<n;i++)
{
term*=x/i;
ex+=term;
}
printf("Exp(%f)=%.10f\n",x,ex);
}
----------------解决方案--------------------------------------------------------