C语小问题高手帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/05/13 11:00:59
#include("stdio.h")
void swap(int a[],int n)
{int k,i,t;
for(k=(n-1),i=0;i<n;i++),k--)
{t=a[i];a[i]=a[k];a[k]=t;}
}
main()
{int a[]={1,3,5,7,9},i;
for(i=0;i<5;i++) printf("%4d",a[i]);
printf("\n");
swap(a,5);
for(i=0;i<5;i++)printf("%4d",a[i]);
printf("\n");
}

谁能帮我看看这个程序。。。
输出结果第二行怎么不反过来呢?是哪里错了!
for(k=(n-1),i=0;i<n;i++),k--)这一行没问题,这个小括号是我多打了!程序运行结果是:"13579 13579",但是结果应该是13579 97531才对呀!是哪里错了?

#include"stdio.h"

void swap(int a[],int n)
{int k,i,t;
for(k=n-1,i=0;i<n/2;i++,k--)
{t=a[i];a[i]=a[k];a[k]=t;}
}
main()
{int a[]={1,3,5,7,9},i;
for(i=0;i<5;i++) printf("%4d",a[i]);
printf("\n");
swap(a,5);
for(i=0;i<5;i++)printf("%4d",a[i]);
printf("\n");

}
这里
for(k=(n-1),i=0;i<n;i++),k--)
的i<n应改为i<n/2;