刚学指针,有问题不懂,来请教
#include <stdio.h>void exchange(a,b); 想要实现 输入三个整形,然后将三个数从大到小排序,然后输出
int *x,*y,*z,a,b,temp;
void main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
x=&a;
y=&b;
z=&c;
if(*x<*y) 问题:将这里改成if(a<b)为什么不行,希望大佬教我!!!!
{
exchange(x,y);
}
if(*x<*z)
{
exchange(x,z);
}
if(*y<*z)
{
exchange(y,z);
}
printf("%d%d%d",a,b,c);
}
void exchange()
{
temp=*x;
*x=*y;
*y=temp;
}
if(*x<*y) if(a<b) 是一个意思。 if(*x<*y)行,那么 if(a<b)也行。如果 if(a<b)不行,那么 if(*x<*y)也不行。。。。不知道你所在的问题在哪。 ba21 发表于 2018-3-18 16:43
if(*x
那请问我这个程序为什么无法实现 wpcbobo 发表于 2018-3-18 16:48
那请问我这个程序为什么无法实现
那请问哪里无法实现了?
难道 你输入 1 2 3 。if(*x<*y)就是正确的吗?
对比下下面代码:
#include <stdio.h>
void exchange(int *x,int *y); //想要实现 输入三个整形,然后将三个数从大到小排序,然后输出
void main()
{
int a,b,c;
int *x,*y,*z;
scanf("%d %d %d",&a,&b,&c);
x=&a;
y=&b;
z=&c;
if(a<b) // 问题:将这里改成if(a<b)为什么不行,希望大佬教我!!!!
{
exchange(x,y);
}
if(*x<*z)
{
exchange(x,z);
}
if(*y<*z)
{
exchange(y,z);
}
printf("%d %d %d\n",a,b,c);
}
void exchange(int *x, int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
} ba21 发表于 2018-3-18 16:55
那请问哪里无法实现了?
难道 你输入 1 2 3 。if(*x
哈哈哈谢谢大佬 但是 我还是不明白为什么定义exchange()的时候,()里面一定要有参数。。 wpcbobo 发表于 2018-3-18 17:18
哈哈哈谢谢大佬 但是 我还是不明白为什么定义exchange()的时候,()里面一定要有参数。。
代码你爱怎么写怎么写。没说一定要参数。
你能用全局变量你就用全局变量(能不用最好不要用)
以你的逻辑思维能把代码写出,完成要求就行。
我可没有说一定要有参数;只是给你代码参考。(能用传参实现的功能干嘛要用全局变量)
另:再说了,你声明的时候有参数, 为什么 在定义的时候又没参数了。这算那门子的事????
void exchange(a,b);// 声明 处
void exchange() // 定义 处
{
temp=*x;
*x=*y;
*y=temp;
}
页:
[1]