改进一下这代码void add(int *a,int *b); int main() { int a[10];max,min,i; printf("请输入十个整数"); for(i=0;i<10;i++) { scanf("%d",a[i]); } printf("%d",a); puts(a); for(i=0;i<10;i++) { if(max>a[i]) { max=a[i]; } else if(min<a[i]) { min=a[i]; } } add(min,a[0]); add(max,a[9]); printf("%d",*a[i]); } void add(int *a,int *b) { int tem=*a; *a=*b; *b=tem; }
时间: 2024-04-21 13:22:41 浏览: 163
以下是改进后的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a[10], max, min;
printf("请输入十个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
max = a[0];
min = a[0];
for (int i = 1; i < 10; i++) {
if (max < a[i]) {
max = a[i];
}
if (min > a[i]) {
min = a[i];
}
}
swap(&min, &a[0]);
swap(&max, &a[9]);
printf("交换后的数组:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在改进后的代码中,我们使用了`swap`函数来实现两个整数的对换。在主函数中,我们首先定义了一个整型数组`a`,并通过循环读取用户输入的十个整数存储到数组中。然后,我们找到数组中的最大值`max`和最小值`min`,并使用`swap`函数将最小值与第一个数对换,最大值与最后一个数对换。最后,我们输出交换后的数组。
注意,在改进后的代码中,我们将`swap`函数的定义提前放置在主函数之前,这样编译器可以提前知道函数的声明。另外,我们还对输入和输出语句进行了适当的修改,使其更符合C语言的语法规范。
阅读全文