代码改错#include <stdio.h> #define N 5 void fun(int arr[],int n) { int i=0; /**********Program**********/ for(i=0;i<N;i++) { int t=arr[i]; arr[i]=arr[N-(i+1)]; arr[N-(i+1)]=t; } /********** End **********/ } int main() { int a[N]={8,6,5,4,1},i; fun(arr[5],n) for(i=0;i<N;i++) printf("%4d",a[i]); printf("\n"); fun(a,N); for(i=0;i<N;i++) printf("%4d",a[i]); return 0; }
时间: 2023-07-23 17:14:06 浏览: 82
有几处问题需要修改:
1. 在函数调用时,应该传入数组a和数组长度N,而不是arr和n。因此,第22行应该改为:`fun(a,N);`
2. 在函数fun中,for循环的条件应该是`i<n`而不是`i<N`,因为n是传入的数组长度,而不是固定的5。因此,第4行应该改为:`void fun(int arr[],int n) {`
修改后的代码如下:
```
#include <stdio.h>
#define N 5
void fun(int arr[],int n) {
int i=0;
for(i=0;i<n;i++)
{
int t=arr[i];
arr[i]=arr[n-(i+1)];
arr[n-(i+1)]=t;
}
}
int main() {
int a[N]={8,6,5,4,1},i;
fun(a,N);
for(i=0;i<N;i++)
printf("%4d",a[i]);
printf("\n");
fun(a,N);
for(i=0;i<N;i++)
printf("%4d",a[i]);
return 0;
}
```
阅读全文