#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
int f(int a,int b,int c);
int g(int a,int b,int c);
int h(int a,int b,int c);
int a,b,c;
int r,s,t;
cout<<"请输入a,b,c的值(空格隔开):";
cin>>a>>b>>c;
r=int f(a,b,c);
s=int g(a,b,c);
t=int h(a,b,c);
cout<<"当b^2-4ac<0时:"<<r<<endl;
cout<<"当b^2-4ac>0时:"<<s<<endl;
cout<<"当b^2-4ac=0时:"<<t<<endl;
return 0;
}
int f(int a,int b,int c){
int x;
x=b*b-4*a*c;
if(x<0){
x=0;
}
return x;
}
int g(int a,int b,int c){
int x,y,z;
x=b*b-4*a*c;
if(x>0){
y=((-b)-sqrt(x))/2*a;
z=((-b)+sqrt(x))/2*a;
}
return (y,z);
}
int h(int a,int b,int c){
int x,y;
x=b*b-4*a*c;
if(x=0){
y=(-b)/2*a;
}
return y;
}
刚学到面向对象,所以指针就免了,就我这个错误给予解决,小弟万分感谢~~!
首先:
r=int f(a,b,c);
s=int g(a,b,c);
t=int h(a,b,c);
函数调用的时候不要写上返回类型.把int去掉.
r=f(a,b,c);
s=g(a,b,c);
t=h(a,b,c);
其次:
int g(int a,int b,int c){
int x,y,z;
x=b*b-4*a*c;
if(x>0){
y=((-b)-sqrt(x))/2*a;
z=((-b)+sqrt(x))/2*a;
}
return (y,z);
函数只能返回一个值. 你这返回了两个了.肯定不行的.
当b^2-4ac<0,>0,=0时的值分别是什么? 这三个情况可以放在一个函数里来实现. 不用分三个函数.
错误很简单看下就知道了,改好了
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
int f(int a,int b,int c);
int g(int a,int b,int c);
int h(int a,int b,int c);
int a,b,c;
int r,s,t;
cout<<"请输入a,b,c的值(空格隔开):";
cin>>a>>b>>c;
r=f(a,b,c);
s= g(a,b,c);
t=h(a,b,c);
cout<<"当b^2-4ac<0时:"<<r<<endl;
cout<<"当b^2-4ac>0时:"<<s<<endl;
cout<<"当b^2-4ac=0时:"<<t<<endl;
return 0;
}
int f(int a,int b,int c){
int x;
x=b*b-4*a*c;
if(x<0){
x=0;
}
return x;
}
int g(int a,int b,int c){
int x,y,z;
x=b*b-4*a*c;
if(x>0){
y=((-b)-sqrt(x))/2*a;
z=((-b)+sqrt(x))/2*a;
}
return (y,z);
}
int h(int a,int b,int c){
int x,y;
x=b*b-4*a*c;
if(x=0){
y=(-b)/2*a;
}
return y;
}