测验题目:错题修改 #include<stdio.h> void Swap(int *x,int *y); int main(void){ float a,b; scanf("%d,%d",&a,&b);/*输入a和b的值*/ printf("Before swap:a=%d,b=%d\n",a,b);/*打印交换前a,b的值*/ Swap(a,b); /*调用函数Swap实现a值与b值得交换*/ printf("After swap:a=%d,b=%d\n",a,b);/*打印交换后的a,b*/ } /*函数功能:交换两个整型数的值*/ void Swap(int *x,int *y); { int temp; temp = *x; *x = *y; *y = temp; }
时间: 2023-08-08 12:04:28 浏览: 94
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码有几个问题:
1. 在`scanf`函数中,输入的是浮点数,但是使用了`%d`作为格式化字符串,应该改为`%f`。
2. 在`Swap`函数的定义中,函数名后面有一个分号,这是无效的语法,应该去掉。
3. 在`Swap`函数中,参数应该是两个指向整型数的指针,但是在`main`函数中却传入了两个浮点数,应该改为传入两个指针。
4. 在`main`函数中,调用`Swap`函数时传入的参数顺序应该是`&a`和`&b`,因为`Swap`函数中交换的是指针所指向的整型数的值。
下面是修改后的代码:
```c
#include <stdio.h>
void Swap(int *x, int *y);
int main(void) {
float a, b;
scanf("%f,%f", &a, &b); /*输入a和b的值*/
printf("Before swap: a=%f, b=%f\n", a, b); /*打印交换前a,b的值*/
Swap(&a, &b); /*调用函数Swap实现a值与b值得交换*/
printf("After swap: a=%f, b=%f\n", a, b); /*打印交换后的a,b*/
return 0;
}
/*函数功能:交换两个整型数的值*/
void Swap(int *x, int *y) {
int temp;
temp = *x;
*x = *y;
*y = temp;
}
```
阅读全文