用C语言实现数组中的数据逆序输出
#include<stdio.h>#defineSIZE14main(){inta[SIZE],i,j,t;for(i=0;i<SIZE;i++)scanf("%d",&...
#include <stdio.h>
#define SIZE 14
main()
{
int a[SIZE],i,j,t;
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
i=0,j=14;
while(i<j)
{
t=a[i];a[i]=a[13-i];a[13-i]=t;
i++;
}
for(i=0;i<SIZE;i++)
printf("%3d",a[i]);
printf("\n");
}
我想问下到底哪里错了,我运行的时候,最后都是按原样输出的。。。。。。 展开
#define SIZE 14
main()
{
int a[SIZE],i,j,t;
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
i=0,j=14;
while(i<j)
{
t=a[i];a[i]=a[13-i];a[13-i]=t;
i++;
}
for(i=0;i<SIZE;i++)
printf("%3d",a[i]);
printf("\n");
}
我想问下到底哪里错了,我运行的时候,最后都是按原样输出的。。。。。。 展开
10个回答
展开全部
i 在递增的同时 j也要递减 在循环的代码块中加一个 j--即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你进行了两次调换,在你的while循环里,当i < 7 时 , 你把a[ 0 ] 和a[ 13 ] 调换了,a[1 ] 和
a[ 12 ] 调换了,一直到a[ 6 ] 和 a[ 8 ]掉换了,然后当 i > 7 是, 又进行了一次互换,原来换好了,又被你给换回来了,当然是原样输出了...
a[ 12 ] 调换了,一直到a[ 6 ] 和 a[ 8 ]掉换了,然后当 i > 7 是, 又进行了一次互换,原来换好了,又被你给换回来了,当然是原样输出了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大哥,你换了两次啊,i=0的时候a[0]和a[13]交换,到i=13的时候a[13]再和a[0]交换,那不是边回来了么
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当i大于7时不是又换回去了么,让j=7试试看。
另外,没必要这么写,直接for(i=13;i>=0;i--)printf("%4d",a[i]);就可以了
另外,没必要这么写,直接for(i=13;i>=0;i--)printf("%4d",a[i]);就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询