c语言求高手帮忙找一下错!!!
程序如下,错误在最后。#include<stdio.h>floatx1,x2,disc,p,q;greater_than_zero(a,b)floata,b;{x1=(-...
程序如下,错误在最后。
#include<stdio.h>
float x1,x2,disc,p,q;
greater_than_zero(a,b)
float a,b;
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
equal_to_zero(a,b)
float a,b;
{
x1=x2=(-b)/(2*a);
}
smaller_than_zero(a,b)
float a,b;
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
}
main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b)
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b)
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b)
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(3) : error C2065: 'a' : undeclared identifier
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(3) : error C2065: 'b' : undeclared identifier
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(4) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition 展开
#include<stdio.h>
float x1,x2,disc,p,q;
greater_than_zero(a,b)
float a,b;
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
equal_to_zero(a,b)
float a,b;
{
x1=x2=(-b)/(2*a);
}
smaller_than_zero(a,b)
float a,b;
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
}
main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b)
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b)
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b)
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(3) : error C2065: 'a' : undeclared identifier
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(3) : error C2065: 'b' : undeclared identifier
E:\软件\C++\MSDev98\MyProjects\习题八点二\去.cpp(4) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition 展开
6个回答
展开全部
#include<stdio.h>
#include <math.h>
float x1,x2,disc,p,q;
void greater_than_zero(float a,float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
}
void main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
楼上的别误导人了,楼主的错误是他根本不熟悉编程语言,C++对C是向下兼容的,除了个别地方有些差异,总体来说C的语法C++可以全部接受
要和LZ强调的是
每个函数定义的时候最好都有一个返回值,如果没有的话也使用void
再就是每个函数的参数声明不是写在函数名下面,而是写在函数名右边的括号里
再一个就是函数变量最好不要用全局的 一开始就定义那么多全局变量不太好
再再一个是 你使用什么功能就要引入相应的头文件,比如你使用了开平方的功能,那个sqrt是math.h库里的函数,所以也要引入相应的头文件
#include <math.h>
float x1,x2,disc,p,q;
void greater_than_zero(float a,float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(float a,float b)
{
x1=x2=(-b)/(2*a);
}
void smaller_than_zero(float a,float b)
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
}
void main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
}
楼上的别误导人了,楼主的错误是他根本不熟悉编程语言,C++对C是向下兼容的,除了个别地方有些差异,总体来说C的语法C++可以全部接受
要和LZ强调的是
每个函数定义的时候最好都有一个返回值,如果没有的话也使用void
再就是每个函数的参数声明不是写在函数名下面,而是写在函数名右边的括号里
再一个就是函数变量最好不要用全局的 一开始就定义那么多全局变量不太好
再再一个是 你使用什么功能就要引入相应的头文件,比如你使用了开平方的功能,那个sqrt是math.h库里的函数,所以也要引入相应的头文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看提示是因为你写的语法是c语言的,但你文件后缀为cpp,编译器把这样的程序当c++程序编译,因此有错,因为在c++中,函数不允许定义为:
greater_than_zero(a,b)
而应该写:
greater_than_zero( float a, float b)
其实就是c,现在也多这样写。
你可以把文件名改为.c再试
greater_than_zero(a,b)
而应该写:
greater_than_zero( float a, float b)
其实就是c,现在也多这样写。
你可以把文件名改为.c再试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改了一下,你试试:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float x1,x2,disc,p,q;
void greater_than_zero(float a, float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
return;
}
void equal_to_zero(float a, float b)
{
x1=x2=(-b)/(2*a);
return;
}
void smaller_than_zero(float a, float b)
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
return;
}
int main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float x1,x2,disc,p,q;
void greater_than_zero(float a, float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
return;
}
void equal_to_zero(float a, float b)
{
x1=x2=(-b)/(2*a);
return;
}
void smaller_than_zero(float a, float b)
{
p=(-b)/2*a;
q=sqrt(disc)/(2*a);
return;
}
int main()
{
float a,b,c;
printf("\n请输入a,b,c,的值:");
scanf("%f %f %f",&a,&b,&c);
printf("方程是%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);
disc=b*b-4*a*c;
printf("方程的解是:\n");
if(disc>0)
{
greater_than_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
}
else
{
smaller_than_zero(a,b);
printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",p,q,p,q);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-12-25
展开全部
二楼的,你说别人误导人,明明是你瞎说, 你若说的对,你为什么要把函数改成greater_than( float a, float b)
不是c++兼容c吗?
你能说别人什么地方说错了吗?
不是c++兼容c吗?
你能说别人什么地方说错了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c始终不是c++,当然要修改了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询