源代码:
#include<stdio.h>
int main()
{
int a, b, * p11, * p21;
scanf("%d %d", &a, &b);
p11 = &a;
p21 = &b;
void exchange(int* p12, int* p22);
if (a < b)
exchange(p11,p21);
printf("max is %d,min is %d", a, b);
return 0;
}
void exchange(int* p12, int* p22)
{
int temp;
temp = *p12;
*p12 = *p22;
*p22 = temp;
}
帮忙找找错,谢谢
引用chatgpt部分指引作答:
在你的代码中,存在一个小错误。exchange 函数声明与调用之间的位置不正确,应该将函数定义放在调用之前。
修改后的代码如下:
```c
#include<stdio.h>
void exchange(int* p12, int* p22);
int main()
{
int a, b, * p11, * p21;
scanf("%d %d", &a, &b);
p11 = &a;
p21 = &b;
if (a < b)
exchange(p11,p21);
printf("max is %d,min is %d", a, b);
return 0;
}
void exchange(int* p12, int* p22)
{
int temp;
temp = *p12;
*p12 = *p22;
*p22 = temp;
}
```
需要注意的是,在主函数中使用了指针来取得输入的数值,并通过 if 语句和 exchange 函数交换了两个数的位置。最后,使用 printf 输出了结果。
希望这可以帮到你!
第一行写上#define _CRT_SECURE_NO_WARNINGS
第6行输入两个数的 scanf() 函数改用:scanf_s("%d%d", &a, &b);
在#include 之后加上#define _CRT_SECURE_NO_WARNINGS;
这是编译环境的问题,不是代码的问题