#include
#define sum 5
void reverse(int *a);
int i=0;
main()
{
int a[sum];
for(i;i<sum;i++){
scanf("%d",&a[i]);
}
reverse(a);
for(i;i<sum;i++){
printf("%d",a[i]);
}
}
void reverse(int *a)
{
int t;
for(i;i<=sum/2;i++){
t=a[i];
a[i]=a[sum-i-1];
a[sum-i-1]=t;
}
}
用指针实现数组逆序输出,为什么实现不了呢?
你把i声明为全局变量
你走完第一个循环i就变成5了
然后后面的i都是5
逆序函数里面的i也是5
解决办法就是每个循环里面的i都int i=0 这样写
记得采纳一下
#include<stdio.h>
#define sum 5
void reverse(int *a);
main()
{
int a[sum];
for(int i=0;i<sum;i++){
scanf("%d",&a[i]);
}
reverse(a);
for(int i=0;i<sum;i++){
printf("%d",a[i]);
}
}
void reverse(int *a)
{
int t;
for(int i=0;i<=sum/2;i++){
t=a[i];
a[i]=a[sum-i-1];
a[sum-i-1]=t;
}
}