将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8

答案是:#include<stdio.h>intmain(){intt,i,a[5]={8,6,5,4,1};for(i=0;i<2;i++){t=a[i];a[i]=a... 答案是:#include <stdio.h>

int main()
{
int t,i,a[5] = {8, 6, 5, 4, 1};
for(i=0;i<2;i++)
{ t=a[i];
a[i]=a[4-i];
a[4-i]=t;
}
for(i=0;i<5;i++)
printf("a[i]=%d",a[i]);
return 0;
}

然后我想知道 a[i]=a[4-i];中的a[4-i]是什么意思,还有 for(i=0;i<5;i++)为什么i要小于5
展开
 我来答
小气包
高粉答主

2020-05-23 · 长期主义
小气包
采纳数:202 获赞数:67151

向TA提问 私信TA
展开全部

例:

#include<stdio.h>

int main()

{

char arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };

int i = 0;

int len = sizeof(arr) / sizeof(arr[0]);

int tmp = 0;  

for (i = 0; i < (len/2); ++i)    //进行len/2次交换

{

tmp = arr[9 - i];     

arr[9 - i] = arr[i];

arr[i] = tmp;

}

for (i = 0; i < len; ++i)

{

printf(" %d ", arr[i]);     //输出

}

return 0;

}

扩展资料

将一个数组中的值按照逆序重新存放

#include<stdio.h>

intmain()

{

inta[100];

intm;

inti=0,n=0,temp;

while(scanf("%d",&m)!=EOF&&n<100){

a[i++]=m;

n++;

}

i=0;

while(i<n/2){

temp=a[n-1-i];

a[n-1-i]=a[i];

a[i]=temp;

i++;

}

for(i=0;i<n;i++)

printf("%d",a[i]);

putchar(10);

return0;

}

zhuhotcai
2018-09-16 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:260
采纳率:61%
帮助的人:59.7万
展开全部
它这个是将数字在数组中的位置进行转换,8和1换,6和4换,先将a[0]的值也就是8,赋值给t,然后将a[4]也就是1的值赋值给a[0],最后将t的值赋值给a[4]。6和4互相换位置也是这样。循环执行两次,最后循环输出数组a的值。i小于5是因为它只需要循环四次输出就可以了,数组的起始位置是a[0],末尾位置是a[4]。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式