C语言问题,谁能告诉我。。

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:25:34
#include <stdio.h>
#include <stdlib.h>
long int max (int a,int b,int c)
{
int d;
if(a>b)d=a;
if(a<c)d=c;
else d=b;
return d;
}
void main ()
{
printf("请输入3个数字");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf(" %d \n",d);
system("PAUSE");
return 0;
}
请问我哪写错了?错在什么地方了?谢谢
问题已经找到是主函数缺少函数声明,不过我郁闷啊, 我不是已经在主函数之前声明过了么,应该可以直接用啊。。为什么这里又需要声明一次呢? 我是C 小菜 高手指点下

有两处错误:
#include <stdio.h>
#include <stdlib.h>
long int max (int a,int b,int c)
{
int d;
if(a>b)d=a;
else d=b;//第一处,两句话顺序交换,并且应是d与c比较
if(d<c)d=c;
return d;
}
void main ()
{
int a,b,c,d;//第二处,没有定义变量
printf("请输入3个数字");
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf(" %d \n",d);
system("PAUSE");
return 0;
}

max 函数写错了, 错在思维混乱
if(a<c)d=c;
else d=b; 这两句的意思是说, 要么 d=c 要么 d=b ,a被你无视了

已经正确运行
#include <stdio.h>
#include <stdlib.h>
long int maxx(int a,int b,int c)
{
int d;
if(a>b)d=a;
if(a<c)d=c;
else d=b;
return d;
}
void main ()
{int a,b,c,d;
printf("请输入3个数字");
scanf("%d,%d,%d",&a,&b,&c);
d=maxx(a,b,c);
printf(" %d \n",d);
system("PA