C语言字符数组问题求助啊!

@Ta 2012-12-20 5277点击
题目是:编写一个函数Inverse,实现将字符数组中的字符串逆序存放的功能。
代码是:#include<stdio.h>

void inverse(char s[],int len);

void main()



       char str[10];

       gets(str);

       inverse(str,10);

       puts(str);

}

 

void inverse(char s[],int len)

{

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

       {

              char temp = s;

              s = s[len-2-i];

              s[len-2-i] = temp;

       }

}
请问在vc下编译出错为什么啊?
回复列表(9|隐藏机器人聊天)
  • @Ta / 2012-12-20 / /
    void inverse(char *,int ); 在main里面申明吧
  • @Ta / 2012-12-20 / /
    1楼也许说错了。。是int i=0要放在外面
  • @Ta / 2012-12-20 / /
    在vc中int i=0放在里面是可以的,我问的是我的程序为什么实现不了题目的要求
  • @Ta / 2012-12-21 / /
    主要是子函数那有两个错误。1、退出循环的条件应该是:i<len/2,不然经过半个循环就已经颠倒了,再来半个循环,就还原了;2、交换的下标应该是:[len-1-i],而不是:[len-2-i],因为0与1只相差1。
  • @Ta / 2012-12-21 / /
    4楼的我试过了但还是在显示逆序字符是出现烫烫这些字样
  • @Ta / 2012-12-21 / /
    4楼的我试过了但还是在显示逆序字符是出现烫烫这些字样
  • @Ta / 2013-01-24 / /
    你的len没有具体值,还有应该是len-2,应该循环5次
  • @Ta / 2013-01-24 / /
    len-1-i
  • @Ta / 2013-01-24 / /
    基本就像四楼说的那样
添加新回复
回复需要登录