请问我这个逆序输出哪出错

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:55:52
#include<stdio.h>
void main(){
int a[5]={1,2,3,4,5};int i,t;for(i=0;i<3;i++){t=a[i];a[i]=a[5-i];a[5-i]=t;}
for(i=0;i<5;i++)printf("%d\n",a[i]);}为什么结果会是0,5,4,3,2

for(i=0;i<3,i++){
t=a[i];
a[i]=a[4-i];
a[4-i]=t:
}
因为a[4]表示第五个数。所以应该是a[4-i]而不是a[5-i]
最后建议书写规范。这是基本的要求!

#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
int i,t;
for(i=0;i<3;i++)
{
t=a[i];
a[i]=a[5-1-i];
a[5-i]=t;
}
for(i=0;i<5;i++)
printf("%d\n",a[i]);
}

a[i]=a[5-i]; 改为
a[i]=a[5-1-i];
程序要分行!
不然以后会乱死了。

i = 0 时
a[ 0 ] 和 a[ 5 ] 交换,a[ 5 ] 都没有

把里面的5-I改为4-i,因为定义a[5]表示有五个数,但是表示每个数的时候,但是这个数组是从a[0]开始的,一直到a[4].就没有问题老。