| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 454 人关注过本帖
标题:将字符串反序输出,下面代码错哪里了???
只看楼主 加入收藏
刘燕媚prince
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2013-5-25
结帖率:88.24%
收藏
 问题点数:0 回复次数:3 
将字符串反序输出,下面代码错哪里了???
#include "stdio.h"
#include "string.h"
void inverse(char str[],int n)
{
    char t;
    int i,j;
    for(i=1;i<=5;i++)
    for(j=n;j>0;j--)   
    if(i<j)
    {
         t=str[i];
    str[i]=str[j];
         str[j]=t;
    }
}
int main()
{
    int i;
    char a[]="abcde";
    for(i=0;i<5;i++)
    {
        printf("%c\n",a[i]);
    }
    printf("\n");
    inverse(a,5);
    for(i=0;i<5;i++)
    {
        printf("%c\n",a[i]);
    }
}
搜索更多相关主题的帖子: include 字符串 
2013-06-21 11:29
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
我只把你的inverse函数改了一下....    其实倒序输出没必要这么麻烦吧

直接一个倒序输出不就OK了?


#include "stdio.h"
#include "string.h"
void inverse(char str[],int n)
{
    char t;
    int i;
    for(i=0;i<=n/2;i++)
    {
         t=str[i];
    str[i]=str[n-1-i];
         str[n-1-i]=t;
    }

}
int main()
{
    int i;
    char b[5];
    char a[]="abcde";
    for(i=0;i<5;i++)
    {
        printf("%c\n",a[i]);
    }
    printf("\n");
    inverse(a,5);
    for(i=0;i<5;i++)
    {
        printf("%c\n",a[i]);
    }
}

三十年河东,三十年河西,莫欺少年穷!
2013-06-21 12:10
yss0729
Rank: 3Rank: 3
来 自:江西 九江
等 级:论坛游侠
帖 子:43
专家分:197
注 册:2013-6-8
收藏
得分:0 
童鞋,反序输出,你代码的思路是可以实现的,利用两次循环,
a b c d e f g
 --->   <----
将头尾元素互换,但是你逐步考虑下
假设字符串的长度是10个
当循环执行到第5个的时候
后面是不是又被换回去了?
给你两段逆序的demo,第一种是你这样的思路做的
程序代码:
#include<stdio.h>
int main()
{
    int i,j;
    char temp;
    char s[26];
    scanf("%s",&s);
    j=0;
    for(i=strlen(s)-1;i>=strlen(s)/2;i--)
    {
        temp =s[i];
        s[i] =s[j];
        s[j] =temp;
        j++;
    }
    printf("%s",s);
}


程序代码:
#include<stdio.h>
void reverse(char *a)
{
    char ch =*a;
    if(ch=='\0')return;
    reverse(++a);
    printf("%c",ch);
}

int main()
{
    char str[]="abcde\0";
    reverse(&str);
}
2013-06-21 12:12
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
程序代码:
#include "stdio.h"
int main()
{
    int i;
    char a[]="abcde";
    for(i=0;i<5;i++)
    {
        printf("%c\n",a[i]);
    }
    printf("\n");
    for(i=4;i>=0;i--)
    {
        printf("%c\n",a[i]);
    }
    return 0;
} 

三十年河东,三十年河西,莫欺少年穷!
2013-06-21 12:12
快速回复:将字符串反序输出,下面代码错哪里了???
数据加载中...
 
   



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

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