免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8283 | 回复: 13
打印 上一主题 下一主题

[函数] 一个用函数进行字符串逆置的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-12 09:11 |只看该作者 |倒序浏览
我写了一个函数进行字符串的逆置,如:10个字符abcdefghij,转成jihgfedcba,在主函数中进行输入输出:
代码如下:
  #include<stdio.h>;
char fan(s)
{  char s[10],temp;
    int i;
    for(i=0;i<10;i++)
     {   temp=s;
          s=s[9-i];
          s[9-i]=temp;
      }
     return(s);
}
void main()
{  char m[10];
    int i;
    printf("please Enter the string:\n";
    for(i=0;i<10;i++)
    scanf("%d",&m);
    m=fan(m);
    printf("the last string is:\n";
    for(i=0;i<10;i++)
    printf("%d",m);
}
    为什么运行会有错误,好像是说字符数组s有问题,问题出在哪,为什么?

论坛徽章:
0
2 [报告]
发表于 2007-03-18 21:24 |只看该作者

ft

lz,你的代码不只错了一个数组,起码错了九个地方,正确代码如下:
#include <stdio.h>
#define N 100
void fan(char s[N])
{  char temp;
    int i;
    for(i=0;i<N;i++)
     {   temp=s[i];
          s[i]=s[N-i];
          s[N-i]=temp;
      }
       
}
void main()
{  char m[N];
   //char k[10];
    int i;
    printf("please Enter the string:\n");
    for(i=0;i<N;i++)
    scanf("%c",&m[i]);
    fan(m);
    printf("the last string is:\n");
    for(i=0;i<N;i++)
    printf("%c\n",m[N-i]);
}

论坛徽章:
0
3 [报告]
发表于 2007-03-18 21:27 |只看该作者
楼上挖坟高手

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
4 [报告]
发表于 2007-03-18 21:33 |只看该作者
似乎对数组边界处理不当哦

论坛徽章:
0
5 [报告]
发表于 2007-03-18 21:51 |只看该作者
原帖由 your1982 于 2004-12-12 09:11 发表
我写了一个函数进行字符串的逆置,如:10个字符abcdefghij,转成jihgfedcba,在主函数中进行输入输出:
代码如下:
  #include<stdio.h>;
char fan(s)
{  char s[10],temp;
    int i;
    for(i= ...


看来北京师范大学计算机系不行亚.....

论坛徽章:
0
6 [报告]
发表于 2007-03-18 21:52 |只看该作者
原帖由 del000 于 2007-3-18 21:24 发表
lz,你的代码不只错了一个数组,起码错了九个地方,正确代码如下:
#include <stdio.h>
#define N 100
void fan(char s[N])
{  char temp;
    int i;
    for(i=0;i<N;i++)
     {   temp=s ...


没见过能传N的....

论坛徽章:
0
7 [报告]
发表于 2007-03-18 22:19 |只看该作者
原帖由 hake2000 于 2007-3-18 21:52 发表


没见过能传N的....



  它这个N不是传的,这样写罢了,呵呵。。

论坛徽章:
0
8 [报告]
发表于 2007-03-19 01:24 |只看该作者
char fan(s)
{  char s[10],temp;
    int i=9/2;
    int j=i+1;
    for(;i>=0;i--,j++)
     {   temp=s[j];
          s[j] =s[i],         s[i]=temp;
                 }
     return(s);
}
/.///循环次数是数组的半长

论坛徽章:
0
9 [报告]
发表于 2007-03-19 01:27 |只看该作者
2004-12-12

论坛徽章:
0
10 [报告]
发表于 2007-03-19 08:44 |只看该作者
原帖由 assiss 于 2007-3-18 21:27 发表
楼上挖坟高手

不服高人不行啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP