将一个数组值按逆顺序存放。高手,求解释。

[复制链接]
查看11 | 回复5 | 2011-4-14 20:05:18 | 显示全部楼层 |阅读模式
main
{int a[4],i,j,temp;
printf("\n please input 4 numbers:");
for (i=0;i<4;i++)
scanf("%d,",&a);
for(i=0,j=3;i<j;i++,j--)
//不懂这里,给个注释
{ temp=a;
//不懂这里,给个注释
a=a[j];
//不懂这里,给个注释
a[j]=temp;
//不懂这里,给个注释
}
for(i=0;i<4;i++)
//这里循环的是什么
printf("%5d",a); // 为何此处要添加一个5,作用是什么
}
求C语言高手,给个解释 谢谢了

回复

使用道具 举报

千问 | 2011-4-14 20:05:18 | 显示全部楼层
void TestD(){
int a[4],i,j,temp;
printf("\n please input 4 numbers:");
for (i=0; i<4; i++)
scanf("%d,",&a);
for(i=0,j=3; i<j; i++,j--)
// 数组共4个元素,对应下标0、1、2、3,
// i=0代表i取第一个元素,j=3代表j取最后一个元素
// i++,j--,i增加一个,j同时减少一个,同时向平
回复

使用道具 举报

千问 | 2011-4-14 20:05:18 | 显示全部楼层
for(i=0,j=3;i<j;i++,j--)
//给出的i变量是0,也就是数组的第一个值,j就是3就是数组中最后一个值,通过j--,i++来改变i,j的值其改变的思路是 ij 03 12 21当执行到这步是就不执行了,跳出循环{ temp=a;

回复

使用道具 举报

千问 | 2011-4-14 20:05:18 | 显示全部楼层
main{int a[4],i,j,temp;printf("\n please input 4 numbers:");for (i=0;i<4;i++)scanf("%d,",&a);for(i=0,j=3;i<j;i++,j--)
//不懂这里,给个注释{ temp=a;

回复

使用道具 举报

千问 | 2011-4-14 20:05:18 | 显示全部楼层
~6,这样就是先翻转,在复转回来。。结构肯定是原来的,于是这么改:#include using namespace std;int main();int i,j=7,k;for(i=0;i<4;i++,j--){ k=a;a=a[j-1];a[j-1]=k;}f
回复

使用道具 举报

千问 | 2011-4-14 20:05:18 | 显示全部楼层
~6,这样就是先翻转,在复转回来。。结构肯定是原来的,于是这么改:#include using namespace std;int main();int i,j=7,k;for(i=0;i<4;i++,j--){ k=a;a=a[j-1];a[j-1]=k;}f
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行