| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2172 人关注过本帖
标题:一道题不会做,谁来帮帮我啊
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
#include <stdio.h>
#include <ctype.h>

#define N 1024

int main(void)
{
    char str[N+1]={' '},buf[N];
    while (fgets(str+1 , N , stdin)!=NULL)
    {
        char *wb,*we,*ps,*pd;
        for (we=str+1 ; *we ; we++)
            if (!isalpha(*we))*we=' ';
        for (pd=buf ; we!=str ; we=wb)
        {
            while (*--we==' ');
            for (wb=we ; *wb!=' ' ; wb--);
            for (ps=wb ; ps<=we ; *pd++=*ps++);
        }
        *pd='\0';
        puts(buf+1);
    }
    return 0;
}


气死我了,居然用了四个指针……将就着看吧……我脑子抽筋了……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-05 08:53
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
#include <stdio.h>
#include <string.h>

int IsTheLast(char* str)
{
    while(*str) if(*str++==' ') return 0;
    return 1;
}

void fun(char* str)
{
    if(!IsTheLast(str)) fun(strchr(str,' ')+1);
    while(*str&&*str!=' ') putchar(*str++);
    putchar(' ');
}

int main(void)
{
    char str[1024];
    while (gets(str))
    {
        fun(str);
        printf("\n");
    }
    return 0;
}
2008-09-05 09:20
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
只要一个变量就够了。
2008-09-05 09:21
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
好狡猾……OK,那我的代码也可以简单一点儿了……
如果允许改变输入数据,甚至可以更简单一点儿,我等会儿来写……

#include <stdio.h>
#include <ctype.h>

#define N 1024

int main(void)
{
    char str[N+1]={' '};
    while (fgets(str+1 , N , stdin)!=NULL)
    {
        char *wb,*we;
        for (we=str+1 ; *we ; we++)
            if (!isalpha(*we))*we=' ';
        for (; we!=str ; we=wb)
        {
            while (*--we==' ');
            for (wb=we ; *wb!=' ' ; wb--);
            printf("%.*s ",we-wb,wb+1);
        }
        printf("\n");
    }
    return 0;
}

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-05 09:30
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
方法很多。可以把整个字符串反转,然后把每个单词反转。
2008-09-05 13:56
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
#include <stdio.h>
#include <ctype.h>

#define N 1024

int main(void)
{
    char buf[N],*ptrs[N];
    while (fgets(buf,N,stdin)!=NULL)
    {
        int i=0,j=0;
        for (ptrs[j++]=buf ; buf[i]!='\0' ; i++)
            if (!isalpha(buf[i]))
            {
                buf[i]='\0';
                if (isalpha(buf[i+1]))
                    ptrs[j++]=buf+i+1;
            }
        while(j)printf("%s ",ptrs[--j]);
        printf("\n");
    }
    return 0;
}


这个怎么样?指针栈~~

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-05 14:28
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

char buf[1024],*p;
int fun()
{
    char *q=p;
    if(scanf("%s",q)!=1)return 0;
    p+=strlen(q)+1;
    if(getchar()==' '){
        fun();
        printf(" %s",q);
    }
    else {
        printf("%s",q);
    }
    return 1;
}

int main()
{
    for(;p=buf,fun();putchar('\n'));
}

2008-09-06 00:28
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
我也亮亮我以前写的代码:


#include <stdio.h>
#include <string.h>


int main(void)
{
    char s[]="I love yzfy very much and for ever !!!" ;
    char *a = NULL ;
    int l = strlen(s) - 1 ;

    while( l-- >= 0 )
    {
        if ( *(s+l) == ' ' || !l )
        {
            a = s + l + ( ( l ) ? ( 1 ) : ( 0 ) ) ;
            while ( *a && *a != ' ' ) putchar( *a++ ) ;
            putchar(' ') ;
        }
    }

    return 0 ;
}

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-09-06 10:27
ALU
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-3-11
收藏
得分:0 
这是我写的,各位帮我看看行不行:
#include<stdio.h>
#include<malloc.h>

void main()
{
    int i=0;
    char a[1000][20];
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    while(scanf("%s",&a[i])!=EOF)i++;
    for(--i;i>=0;i--)
        printf("%s ",a[i]);
}
2008-09-06 13:24
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS:我说。你要浪费空间,也不是这么个办法吧?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-06 13:29
快速回复:一道题不会做,谁来帮帮我啊
数据加载中...
 
   



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

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