用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");
}

我想问下到底哪里错了,我运行的时候,最后都是按原样输出的。。。。。。
展开
 我来答
风若远去何人留
推荐于2017-09-19 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部

可以将这个功能封装为一个函数。

传入数组首地址,以及数组长度。

以循环方式,对数组逆序遍历即可。

代码:

void revers_print(int *a, int l)
{
    int i;
    for( i = l-1; i >=0; i -- )
        printf("%d,",a[i]);
        
    return 0;
}
百度网友50cab7a
2013-01-06 · TA获得超过504个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:169万
展开全部
i 在递增的同时 j也要递减 在循环的代码块中加一个 j--即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ustb_hxb
2013-01-06 · TA获得超过265个赞
知道小有建树答主
回答量:248
采纳率:66%
帮助的人:167万
展开全部
因为你进行了两次调换,在你的while循环里,当i < 7 时 , 你把a[ 0 ] 和a[ 13 ] 调换了,a[1 ] 和
a[ 12 ] 调换了,一直到a[ 6 ] 和 a[ 8 ]掉换了,然后当 i > 7 是, 又进行了一次互换,原来换好了,又被你给换回来了,当然是原样输出了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
XiaOt8936
2013-01-06
知道答主
回答量:49
采纳率:0%
帮助的人:12万
展开全部
大哥,你换了两次啊,i=0的时候a[0]和a[13]交换,到i=13的时候a[13]再和a[0]交换,那不是边回来了么
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐行乐
2013-01-06 · 超过10用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:24.7万
展开全部
当i大于7时不是又换回去了么,让j=7试试看。
另外,没必要这么写,直接for(i=13;i>=0;i--)printf("%4d",a[i]);就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式