网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月06日漏签0天
c语言吧 关注:801,856贴子:4,376,597
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回c语言吧
>0< 加载中...

关于数组中元素前后位置互换的问题,请各位大佬看下~

  • 只看楼主
  • 收藏

  • 回复
  • 墨金紫罗兰
  • 酱油
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<stdio.h>
int main()
{
int iArray[5], index, temp; /*定义数组及变量为基本整型*/
printf("Please enter a Array:\n");
for (index= 0; index< 5; index++) /*逐个输入数组元素*/
{
scanf("%d", &iArray[index]);
}
printf("Original Array is:\n");
for (index = 0; index< 5; index++) /*显示数组中的元素*/
{
printf("%d ", iArray[index]);
}
printf("\n");
for (index= 0; index <2; index++) /*将数组中元素的前后位置互换*/这里有点没看明白
{
temp = iArray[index]; /*元素位置互换的过程借助中间变量temp*/
iArray[index] = iArray[4-index];
iArray[4-index] = temp; 这里不多余么
}
printf("Now Array is:\n");
for (index = 0; index< 5; index++) /*将转换后的数组再次输出*/
{
printf("%d ", iArray[index]);
}
printf("\n");
return 0;
}
各位大佬好,我在不明白的地方哪里注明了表情。第一处这个for (index= 0; index <2; index++) 什么意思?这个为什么能完成前后位置的互换呢?第二处地方, iArray[4-index] = temp; 这个语句不多余么?
由于我不清楚所以我按我的理解更改了两次。
第一次程序如下:
#include<stdio.h>
int main()
{
int iArray[5], index, temp; /*定义数组及变量为基本整型*/
printf("Please enter a Array:\n");
for (index= 0; index< 5; index++) /*逐个输入数组元素*/
{
scanf("%d", &iArray[index]);
}
printf("Original Array is:\n");
for (index = 0; index< 5; index++) /*显示数组中的元素*/
{
printf("%d ", iArray[index]);
}
printf("\n");
for (index= 0; index <5; index++) /*将数组中元素的前后位置互换*/更改了这里
{
temp = iArray[index]; /*元素位置互换的过程借助中间变量temp*/
iArray[index] = iArray[4-index];
iArray[4-index]=temp;
}
printf("Now Array is:\n");
for (index = 0; index< 5; index++) /*将转换后的数组再次输出*/
{
printf("%d ", iArray[4-index]); 更改了这里
}
printf("\n");
return 0;
}
这第一次更改的结果与书本上的程序结果一致。然后再此基础上,我第二次更改的时候将心碎表情的那一行给删除了,可是最后结果错误了。错误结果如下图所示:

这样我就有点不明白了……
请各位大佬指教一下:
1.第一处这个for (index= 0; index <2; index++) 这个为什么能顺序置换?
2. iArray[4-index] = temp; 这个语句不多余么?
3.为什么我把这个语句去除之后结果变成了5-4-3-4-5……
若能指教,不胜感激,麻烦各位大佬了!!!


  • caihuyougui
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
for语句执行2次循环:第一次0号跟4号交换,第二次1号跟3号交换。


2026-03-06 14:59:17
广告
不感兴趣
开通SVIP免广告
  • caihuyougui
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
temp语句不多余,因为值的交换必须借助临时变量辅助。比如0号跟4号交换,直接0=4后,0号存储的值就丢失了。


  • T1-369
  • 葱の帝球
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
中间值呢


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示