c语言指针,输入a,b,c三个数。将最大的数输出

c语言指针,输入a,b,c三个数。将最大的数输出
2024年11月19日 18:31
有5个网友回答
网友(1):

上面兄弟的程序在VC6.0里虽然编译和连接都没什么问题,但是是得不出正确结果的,输入11,12,13只会显示11.这显然是不正确的.错误之处是下面这句
scanf("%d%d%d", &a, &b, &c); 应为scanf("%d,%d,%d", &a, &b, &c); 少了3个逗号.

以下是小弟写的 在VC6.0下调试通过:

#include
void selmax(int *p1,int *p2,int *p3)
{
if (*p1<*p2) *p1=*p2;
if (*p1<*p3) *p1=*p3;
}

void main()
{
int a,b,c;
int *max=&a,*t1=&b,*t2=&c;

printf("请输入a,b,c三个数:\n");
scanf("%d,%d,%d",&a,&b,&c);
selmax(max,t1,t2);
printf("\n最大值为:%d\n",*max);
}

网友(2):

include
int main()
{
int a,b,c,MAX;
scanf(”%d“,&a);
scanf(”%d“,&b);
scanf(”%d“,&c);
MAX = a>b ? a : b
MAX = MAX>c ? MAX : c
printf("max=%d min=%d",MAX,MIN);
}
原理就是两两比较得出最大的那个数.

网友(3):

标准C调试通过,代码如下: (另外补充一下:以我人格担保不需要三个逗号,并且能输出正确答案!!!)

#include
int swap(int *a, int *b, int *c)
{
int temp;
if(*a < *b)
{
temp = *a;
*a = *b;
*b = temp;
}
if(*a < *c)
{
temp = *a;
*a = *c;
*c = temp;
}
return *a;
}

void main()
{
int a,b,c;
scanf("%d%d%d", &a, &b, &c);
swap(&a, &b, &c);
printf("the max num = %d\n", a);
}

网友(4):

printf("%d",((*a)>(*b)?(*a):(*b))>(*c)?((*a)>(*b)?(*a):(*b)):(*c));

网友(5):

#include

void main()
{
int i;
int NumberArray[3],MaxNumber;
printf("请输入a,b,c三个数:\n");
scanf("%d,%d,%d",NumberArray,NumberArray+1,NumberArray+2);
MaxNumber = NumberArray[0];
for(int i=0;i<3;i++)
{
if(NumberArray[i]>MaxNumber) MaxNumber=NumberArray[i];
}
printf("\n输入三个数中的最大值为:%d\n",MaxNumber);
}