C语言程序,求三个数中的最大值!哪位高手帮看看这个程序哪里错了,运行的时候老在报“段错误!”谢谢

程序如下:
# include <stdio.h>
# include <math.h>
main()
{
int a,b,c,max,*p1,*p2,*p3;
printf("please input the numbers: ");
scanf("%d","%d","%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(*p1>*p3&&*p1>*p2)
max=*p1;
if(*p2>*p1&&*p2>*p3)
max=*p2;
if(*p3>*p1&&*p3>*p2)
max=*p3;
//max(int *p1,int *p2,int *p3);
printf("max=%d\n",max);
}

# include <stdio.h>
//# include <math.h> //这个头文件用不上

void main()
{
int a,b,c,max,*p1,*p2,*p3;
printf("please input the numbers: \n");
scanf("%d,%d,%d",&a,&b,&c); // 格式控制符错误 输出时如 1,2,3回车
p1=&a;p2=&b;p3=&c;
if(*p1>*p3&&*p1>*p2)
max=*p1;
else if(*p2>*p1&&*p2>*p3)
max=*p2;
else if(*p3>*p1&&*p3>*p2)
max=*p3;
//max(int *p1,int *p2,int *p3);
printf("max=%d\n",max);
}

以上给你注释好了 另外加了个\n 是程序看起来能更清晰一点
其实你这题根本用不上指针,硬是强加上,直接用a,b,c就可以算的

另外

/*

楼上正解。
给另一个简单的程序。
int max(int a,int b,int c)
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}

*/

这个根本行不通的 那B 和 C怎么判断 如果B>C>A 就不行了
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-25
哥们,为什么在这个不太难的程序中要用指针。指针好用但是容易引起内存的崩溃。所以尽量不用指针就不用。建议你将指针去掉。改成这样;
ifa>b && a>c)
max=a;
if(b>a && b>c)
max=b;
if(c>a && c>b)
max=c;
printf("max=%d\n",max);
第2个回答  2010-01-25
scanf("%d","%d","%d",&a,&b,&c);
错误
scanf("%d%d%d",&a,&b,&c);
第3个回答  2010-01-25
楼上正解。
给另一个简单的程序。
int max(int a,int b,int c)
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}
第4个回答  2010-01-28
干嘛用指针啊 ,C语言对整数处理很少用指针,指针主要是用来做字符串处理
scanf的参数不是那样写的
scanf("%d,%d,%d",&a,&b,&c);
第5个回答  2010-02-06
scanf("%d","%d","%d",&a,&b,&c);修改成scanf("%d,%d,%d",&a,&b,&c);

C语言程序,求三个数中的最大值!哪位高手帮看看这个程序哪里错了,运行...
{ int a,b,c,max,*p1,*p2,*p3;printf("please input the numbers: \\n");scanf("%d,%d,%d",&a,&b,&c); \/\/ 格式控制符错误 输出时如 1,2,3回车 p1=&a;p2=&b;p3=&c;if(*p1>*p3&&*p1>*p2)max=*p1;else if(*p2>*p1&&*p2>*p3)max=*p2;else if(*p3>*p1&&*p3...

我想用C语言编一个求三个数的最大值。下面是我编的。但运行时结果不对...
include<stdio.h> int main(){ int max(int x,int y);int a,b,c,d,e;printf("请输入三个数\\n");scanf("%d,%d,%d",&a,&b,&c);d=max(a,b);if(d>c)e=d;else e=d;printf("最大值=%d",e);return 0;} int max(int x,int y){ int z;if(x>y)z=x;else z=y;re...

C语言 三数求最大值,帮我看看这个答案为何出错
程序是没有错的,我想你一定是在输入的时候有问题 scanf("%d,%d,%d",&a,&b,&c); 这个是定义的输入的格式,比如想要a=1,b=2,c=3 要输入 1,2,3 就是说逗号这个也要跟scanf里面的相符 你在输入的时候,大概是 1 2 3 这样的,这样只有a被读进去了,因为后面的格式不符,bc没有...

求C语言高手编一个数组求最大值最小值的程序。
第%d个相对元素最大值为[%d],最小值为[%d]\\n", arrayNum, NUM, i+1, max[i], min[i]); }}int main(){ int arrayNum = 10; initData(arrayNum);

c语言 三个数求最大值我这哪里错了
代码没啥大问题,只要注意:1 输入时用逗号分隔。2 如果编译器不支持的话,将scanf_s改成scanf;将max的声明移到前面。下面是验证截图:

C语言中三个数求最大值的问题
你这个程序有几个问题 1.头文件那里肯定有问题,要么就是用<>,表示引用库文件;要么就是用"",表示引用当前目录下的头文件.你那(""),闻所未闻.2.你输入数字的时候,中间用的分隔号,向你这种情况一般用空格或回车.3.你的max()函数所定义在main()的后面的,这样的你在main()中是不能调用的,因为...

c语言求三个数最大值
include<stdio.h> int max(int x,int y){ return (x>y?x:y);} main(){ int (*p)(int,int); \/\/定义p是指向函数的指针变量 int a,b,c,d;p=max;\/\/使p指向函数max printf("输入3个数\\n");scanf("%d %d %d",&a,&b,&c);d=(*p)(a,b);\/\/通过指针变量p调用max函数 prin...

C语言编程问题:有3个整数,,,由键盘输入,输出其中最大的数,请编程序
1.为什么输出的最大值时a?请注意你的第一个if,它的后面没有加{ ...},那么if判断之后执行的只能有一行代码,就是if(b>c);这不会做任何操作,继续执行下面的语句printf("max=%d",a);结果自然是a的值12了;2.且不说写的好不好,就你的这段程序会不会输出正确值,就你输入的12,15,116而...

...做:用从键盘输入3个数,编程实现3个数的比较,输出其中的最大值...
int a[3];printf("输入第一个数:")sacnf("%d",&a[0]);printf("\\n输入第二个数:")sacnf("%d",&a[1]);printf("\\n输入第三个数:")sacnf("%d",&a[2]);int max=0;for(int i=0;i<3;i++){ max=max>a[i]?max:a[i];} printf("%d",max);...

C语言输入三个数求最大值
main(){int num[3],i;printf("请输入三个数");for(i=0;i<3;i++)scanf(%d,&num[i]);if(num[0]<num[1])i=num[1];elsei=unm[0];if(i>num[2])printf(''三个数中最大的是%d",i);elseprintf("三个数中最大的是%d",num[2]);} ...

相似回答