C程序报错求助
本人小白,照着小甲鱼的课程写了一个用指针比较大小的程序,代码如下#include <stdio.h>
void main()
{
void swap(int *p1, int *p2);
int a, b;
int *pa, *pb;
printf("please input two numbers:\n");
scanf("%d %d", &a, &b);
pa=&a;
pb=&b;
if(a<b)
{
swap(int *pa, int *pb);
}
printf("%d > %d\n", a, b);
}
void swap(int *p1, int *p2)
{
int temp;
printf("in course of swapping, please wait!\n");
temp=*p1;
*p1=*p2;
*p2=temp;
}
为什么编译的时候总是出现如下错误?
: error C2143: syntax error : missing ')' before 'type'
: error C2198: 'swap' : too few actual
: error C2059: syntax error : ')' parameters
执行 cl.exe 时出错.
- 1 error(s), 0 warning(s)
谢谢各位
swap调用那里,直接写swap(pa, pb) 楼主,把a和b的值传入函数时不需要pa和pb的,还有 swap(int *pa, int *pb);在语法上是不需要这两个int的,正确的如下
#include <stdio.h>
int main()
{
void swap(int *p1, int *p2);
int a, b;
int *pa, *pb;
printf("please input two numbers:\n");
scanf("%d %d", &a, &b);
pa=&a;
pb=&b;
if(a<b)
{
swap(&a,&b);
}
printf("%d > %d\n", a, b);
return 0;
}
void swap(int *p1, int *p2)
{
int temp;
printf("in course of swapping, please wait!\n");
temp=*p1;
*p1=*p2;
*p2=temp;
} 或者是使用指针pa和pb将值传入函数
#include <stdio.h>
int main()
{
void swap(int *p1, int *p2);
int a, b;
int *pa, *pb;
printf("please input two numbers:\n");
scanf("%d %d", &a, &b);
pa=&a;
pb=&b;
if(a<b)
{
swap(&(*pa),&(*pb));
}
printf("%d > %d\n", a, b);
return 0;
}
void swap(int *p1, int *p2)
{
int temp;
printf("in course of swapping, please wait!\n");
temp=*p1;
*p1=*p2;
*p2=temp;
} 在传入函数时,一定要用到取地址符 int *pa, *pb; 这两个指针变量多余。pa = &a, pb = &b,也是多余的。
#include <stdio.h>
void main()
{
void swap(int *p1, int *p2);
int a, b;
printf("please input two numbers:\n");
scanf("%d %d", &a, &b);
if(a<b)
{
swap( &a, &b);
}
printf("%d > %d\n", a, b);
}
void swap(int *p1, int *p2)
{
int temp;
printf("in course of swapping, please wait!\n");
temp=*p1;
*p1=*p2;
*p2=temp;
} 谢谢大家,问题已解决
页:
[1]