32060049 2015-10-22 04:19 采纳率: 94.4%
浏览 3385
已采纳

C语言数组倒序排列问题

#include

int main(){
void inv(int x[],int n);
int i,a[10]={1,2,3,4,5,6,7,8,9,0};
for(i=0;i<10;i++)printf("%d\n",a[i]);

  inv(a,10);
  printf("after change:\n");
  for(i=0;i<10;i++)printf("%d\n",a[i]);

  return 0;

}

void inv(int x[],int n){
int temp,i,j,m = n-1/2;
for(i=0;i<=m;i++){
j = n-1-i;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
return;
}

代码如图,想要把数组倒序排列,可是没有实现。还有想请问在INV的for循环里可不可以换成,for(i=0,j=n-1;i<=m;i++,j--)?如果不可以是为什么噢?

万分感谢!

  • 写回答

6条回答 默认 最新

  • Flying_Home 2015-10-22 06:09
    关注

    第一: 将 #include 改为 #include
    第二:将 m = n-1/2 改为 m = (n-1)/2
    只要将第一个和倒数第一个
    第二个和倒数第二个
    第三个和倒数第三个
    。。。。
    进行交换就行
    当正数n和倒数的n相同时,就不能在继续交换了,否则就会得到没有交换的结果。
    例如:有三个数据要交换
    你只要交换第一个和倒数第一个就可以了,中间一个可以不交换
    即可!!!!!!

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

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料