freemandj 2019-12-01 16:35 采纳率: 100%
浏览 845
已采纳

不理解(i=0;i<n/2;i++),为什么要(i<n/2)

7-1 将数组中的数逆序存放 (20 分)
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。

输入格式:
输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。

输出格式:
在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。

输入样例:
4
10 8 1 2
输出样例:
2 1 8 10
#include
#define MAX 10
int main()
{

int i,n;
int temp;
int a[MAX];
scanf("%d",&n);
for(i=0; i<n; i++)
{

scanf("%d",&a[i]);
}
for(i=0;i<n/2;i++)
{

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

a[n-i-1] = temp;
}
printf("%d",a[0]);
for(i=1; i<n; i++)
{

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

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-12-01 16:55
    关注

    前面的和后面的交换,所以是n/2
    如果是n的话,那么过了一半,又交换,那么等于交换回来了。
    看下面的例子:
    1 2 3 4 5
    i=0交换 15:5 2 3 4 1
    i=1交换2 4:5 4 3 2 1
    i=2 交换 3自己:5 4 3 2 1
    i=3>5/2停止,完成
    如果不停止,再交换4 2就成了5 2 3 4 1,再交换1 5成了1 2 3 4 5就回来了

    问题解决请点下"采纳"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 9月6日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示