已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > C/C++ > 讨论/求助

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

作者: @Ta

时间: 2012-12-20

点击: 5278

题目是:编写一个函数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|隐藏机器人聊天)』

1. void inverse(char *,int ); 在main里面申明吧
(/@Ta/2012-12-20 23:00//)

2. 1楼也许说错了。。是int i=0要放在外面
(/@Ta/2012-12-20 23:02//)

3. 在vc中int i=0放在里面是可以的,我问的是我的程序为什么实现不了题目的要求
(/@Ta/2012-12-20 23:13//)

4. 主要是子函数那有两个错误。1、退出循环的条件应该是:i<len/2,不然经过半个循环就已经颠倒了,再来半个循环,就还原了;2、交换的下标应该是:[len-1-i],而不是:[len-2-i],因为0与1只相差1。
(/@Ta/2012-12-21 00:27//)

5. 4楼的我试过了但还是在显示逆序字符是出现烫烫这些字样
(/@Ta/2012-12-21 12:36//)

6. 4楼的我试过了但还是在显示逆序字符是出现烫烫这些字样
(/@Ta/2012-12-21 12:39//)

7. 你的len没有具体值,还有应该是len-2,应该循环5次
(/@Ta/2013-01-24 10:30//)

8. len-1-i
(/@Ta/2013-01-24 10:31//)

9. 基本就像四楼说的那样
(/@Ta/2013-01-24 10:32//)

回复需要登录

9月16日 14:19 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1