c语言,改正这里面的错误

include #include void fun(int a, b) {int t;t=b; b=a;a =t; 3}main() { int a, b;clrscr();printf("Enter a,b :"); scanf("%d%d", &a, &b); fun(&a, &b); printf("a=%d b=%d\n", a, b);}

#include <stdio.h>

void fun(int *a, int *b) {
    int t;
    t = *b;
    *b = *a;
    *a = t;
}

int main() {
    int a, b;
    printf("Enter a, b: ");
    scanf("%d %d", &a, &b);
    fun(&a, &b);
    printf("a = %d, b = %d", a, b);
    
    return 0;
}

以下是修改后的代码,修正了语法和逻辑错误:

#include <stdio.h>

void fun(int *a, int *b) {
    int t = *b;
    *b = *a;
    *a = t;
}

int main() {
    int a, b;
    printf("Enter a, b: ");
    scanf("%d %d", &a, &b);
    fun(&a, &b);
    printf("a=%d b=%d\n", a, b);
    return 0;
}

主要修改如下:

  1. 添加了 <stdio.h> 头文件,以包含输入输出函数。
  2. 修正了 fun 函数的参数列表,将参数 ab 的类型都修改为指针类型 int *
  3. fun 函数内部,使用指针解引用操作 * 来访问和交换变量的值。
  4. main 函数中,修正了输入格式字符串的错误,使用空格分隔输入的两个整数。
  5. 移除了 clrscr() 函数,该函数在标准 C 库中并不存在。

修改后的代码将正确接收两个整数并调用 fun 函数交换它们的值,然后输出交换后的结果。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^