C语言第42讲第8分钟的程序,我的代码几乎和教程上的一样,为什么老是提示错误
#include <stdio.h> //实现比较大小,输出先大后小void swap(int *m int *n);
void main()
{
int *p,*q;
int a,b;
scanf("%d%d",&a,&b);
p=&a;
q=&b;
if(a<b)
{
swap(p,q); //如果a>b,交换a和b
}
printf("%d%d\n",a,b);
printf("%d %d\n",*p,*q);
}
void swap(int *m int *n) //实现a和b的地址交换,保持a和b的值不变。
{
int *t;
t=m;
m=n;
n=t;
} 函数参数之间要用逗号隔开 void swap(int *m int *n) 的形式参数int *m int *n之间少了逗号 这样子吧 赞同上面几楼 本帖最后由 !~!~! 于 2016-4-2 17:33 编辑
#include <stdio.h> //实现比较大小,输出先大后小
void swap(int **m, int **n);
void main()
{
int *p, *q;
int a, b;
printf("输入数字:");
scanf("%d %d", &a, &b);
p = &a;
q = &b;
if (a < b)
{
swap(&p, &q); //如果a<b,交换p和q
}
printf("a = %d\tb = %d\n", a, b);
printf("*p = %d\t*q = %d\n", *p, *q);
printf("&a = %p\t&b = %p\n", &a, &b);
printf("p = %p\tq = %p\n", p, q);
}
void swap(int **m, int **n) //实现a和b的地址交换,保持a和b的值不变。
{
int *t;
t = *m;
*m = *n;
*n = t;
}
是这个意思吧 #include <stdio.h> //实现比较大小,输出先大后小
void swap(int *m int *n);
void main()
{
int *p,*q;
int a,b;
scanf("%d%d",&a,&b);
p=&a;
q=&b;
if(a<b)
{
swap(p,q); //如果a>b,交换a和b
}
printf("%d%d\n",a,b);
printf("%d %d\n",*p,*q);
}
void swap(int *m int *n) //实现a和b的地址交换,保持a和b的值不变。
{
int t;
t=*m;
*m=*n;
*n=t;
}
这样才对{:10_254:}
页:
[1]