帮我看个c语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 03:48:09
#include "stdio.h"
#include "conio.h"
#include "math.h"
#define c 2982
float min (float a ,float b ,float c ,float d){
float min,min1,min2;
if(a<b)min1=a;
else min1=b;
if(c<d)min2=c;
else min2=d;
if(min1<min2)min=min1;
else min=min2;
return min;
}
main()
{
int i,j;
float a[4],x,y,d[4],a,b,c,d,min;
struct rcv_pt
{
float x;
float y;
float delt;
};
struct rcv_pt rcvpt[4];

rcvpt[0].x=0;
rcvpt[0].y=50;
rcvpt[1].x=30;
rcvpt[1].y=50;
rcvpt[2].x=0;
rcvpt[2].y=0;
rcvpt[3].x=30;
rcvpt[3].y=0;
rcvpt[0].delt=0;
rcvpt[1].delt=0;
rcvpt[2].delt=0;
rcvpt[3].delt=0;
for(i=0;i<4;i++)
{
printf("please input the %dth number,then press ENTER\n",i+1);
scanf("%f",&a[i]);
rcvpt[i].delt=a[i];

}
for (y=0;y

问题比较多。变量重复定义的很多。
#define c 2982
float min (float a ,float b ,float c ,float d)
两个变量c
float a[4],x,y,d[4],a,b,c,d,min;
变量a有数组和整形定义。

min=min(d[0],d[1],d[2],d[3]);
这句修改试试,变量名不要与函数相同

要养成良好的编程风格,结构体可以在外面定义。
变量名不要重复,形参和实参最好不一样。
常量大写。

错误一:
#define c 2982
float min (float a ,float b ,float c ,float d)
已经用#define定义常量c为2982,在编译时,凡是遇到c,系统就会按2982替换,因此在系统眼中,你的函数定义是float min (float a ,float b ,float 2982 ,float d)。所以会出错。只要将第三个形参的名字改了就行。
错误二:
函数名与主函数中的变量重名min=min(d[0],d[1],d[2],d[3]);
这样系统不知道“=”左边那个不带参数的min表示什么意思,所以会出错。
错误三:
float a[4],x,y,d[4],a,b,c,d,min;
"a" "d"都重复定义了两次,在c语言中,数组名与普通变量的名字是不能相同的。
把这些错误修改了就可以编译了(已经上机试过了)
最后提醒一句,改错的时候不要仅揪住系统提示的错误不放,有时系统说只有一处错误,可能有好几处;有时系统说有n处错误,其实就一处;还有时真正出错的语句与系统提示的错误语句差着很远。要学会从全局出发来改错。