| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 652 人关注过本帖
标题:关于字符串反序排列的简单问题,请教一下!
只看楼主 加入收藏
尘埃落雪
Rank: 2
等 级:论坛游民
帖 子:34
专家分:17
注 册:2010-6-7
结帖率:88.89%
收藏
已结贴  问题点数:23 回复次数:3 
关于字符串反序排列的简单问题,请教一下!
#include<stdio.h>
#include<stdlib.h>
#define N 6
int  main()
{      void sort (char a[N]);
       char c [N];
       scanf("%s",c);  /* 输入五个字母*/
       sort (c[N]);
       printf("\0");
       printf("%s",c);
       system("pause ");
}

void sort (char a[N])
{
   int i;
   char temp;
   for(i=0;i<N/2;i++)
  { temp=a[i];
   a[i]=a[N-2+i];
   a[N-2+i]=temp;}
   
  
}
/*本题目只考虐最简单的情况,*/

为什么编译通不过,我想知道具体的原因。
搜索更多相关主题的帖子: 排列 简单问题 字符 
2010-06-19 14:32
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
函数调用的第一个参数必须为地址或者简单变量的具体元素,所以 sort (c[N]);
改为 sort (c);就可以运行了,不过我发现你的程序跟题意要求不同哦
2010-06-19 14:53
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:23 
程序代码:
#include<stdio.h>
#include <stdlib.h>
#define N 6

 int main()
{
void sort (char a[]);//不必写N,没用,当然写了也不会影响结果
       char c [N];
       scanf("%s",c);  /* 输入五个字母*/
       sort (c);//如楼上所说,改为c,因为函数需要传一个数组,若写c[N],首先c[6是char,其次是越界的……
       //printf("\0");//这一句没用,删掉
       printf("%s",c);

        system("pause");
}
void sort (char a[]) //不必写N,没用,当然写了也不会影响结果
{
   int i;
   char temp;
   for(i=0;i<(N-1)/2;i++)//必须从0循环到字符串长度的一半(但是字符串长度为N-1),因为最后有一个\0,不能排序
  { temp=a[i];
   a[i]=a[N-2-i]; //这两个数下标之和应为字符串长度(N-1)减一,即(N-2)
   a[N-2-i]=temp;}
  

 
}
ps:用DEV是个好习惯!

[ 本帖最后由 heartnheart 于 2010-6-19 17:21 编辑 ]
2010-06-19 17:20
鬼鬼千年
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:140
注 册:2010-4-9
收藏
得分:0 
不愧为侠,厉害!

活了千年的鬼鬼,突然想当个人,看看人和鬼哪个好?
2010-06-21 22:47
快速回复:关于字符串反序排列的简单问题,请教一下!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014124 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved