求救~ 有谁能帮帮手~~ 做一下C语言上机的题目~

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:10:55
1.填空题
请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。
例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include "math.h"
#include <stdio.h>
main()
{
float a,b,c, disc,x1,x2;
clrscr();
do
{
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc<0)
printf("disc=%f\n Input again!
\n",disc);
}while(【1】);
printf("*******the result*******\n");
x1=【2】;
x2=【3】;
printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2);

2. 改错题
下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)
例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#

1. (1) disc < 0
(2)a/2.0 + sqrt(disc)/4.0
(3)a/2.0 - sqrt(disc)/4.0
2.double fun(int m)
{ double y=1.0;
/**********************found***********************/
int j=1;
int i;
for(i=2; i<=m; i++)
{
j=-1*j;
/**********************found***********************/
y+=1/(i * i); //y+=j/(i*i);
}
return(y);
}
3.
int max =0, i = 0, j = 0;
for (j = 0; j < N; j++)
{
max = tt[0][j];
for (i = 1; i < M; i++)
{
if (max < tt[i][j])
max = tt[i][j];
}
pp[j] = max;
}

----------------------------------------------
求值公式我不记得了,我只是凭印象写的,你可以查一下求值公式确认一下^_^