問題二次方程根的功能
編寫計算二次方程
ax^2 +bx+c = 0
您應該處理的三種根的實部和虛根的功能。
提示:使用此函數原型:
int calculateRoots(int a,int b,int c,float* root1,float* root2);
我的問題:
- 怎麼能解二次方程函數返回一個int?我在毫無頭緒這意味着什麼
- 我改變了機能的研究返回類型
void()
但我不能處理2虛根不知道如何回到現實+ IMAG我
以下就是我這樣達成遠:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void calculateRoots(int a,int b,int c,float* root1,float* root2);
int main()
{
float r1,r2;
int a,b,c;
printf("enter the coefficients :\n");
scanf("%d%d%d",&a,&b,&c);
void calculateRoots(a,b,c,&r1,&r2);
printf("%d and %d are roots,r1,r2);
return 0;
}
void calculateRoots(int a,int b,int c,float* root1,float* root2)
{ float x=b*b-4*a*c;
if(x==0)
{
*root1=(-1*b)/(2*a);
*root2=(-1*b)/(2*a);
}
else if(x>0)
{
*root1=(-1*b+x)/(2*a) ;
*root2=(-1*b-x)/(2*a) ;
}
if(x<0)
{
root1=// Any help here
}
}
這看起來像你應該問你的老師。你是否爲每個案例提供了樣本輸入/輸出? – Kevin
你可能沒有被要求處理假想的根。你可能需要處理這3個案例,一個根,兩個根,根本沒有根。如果'x <0'返回0,否則返回1.如果函數返回0,則調用者可以知道沒有根。 –
'float * root1'可以指向一個***數組***。所以這個函數被這樣調用:'float r1 [2],r2 [2]; calculateRoots(a,b,c,r1,r2);'返回值是1或2,即根的數量。 – user3386109