| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1990 人关注过本帖
标题:这题就很怪!
只看楼主 加入收藏
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <malloc.h>
#include <string.h>

int main(int argc, char** argv)
{

    char a[] = " I AM STEDENT ";
    int i = 0;
    int j = 0;
    int nSum = 0;
    char** pp = (char**)malloc(sizeof(char*)*strlen(a));
    memset(pp, '\0', sizeof(char*)*strlen(a));
    for(i = 0; i < strlen(a); i++)
    {
         pp[i] = (char*)malloc(sizeof(char)*strlen(a));
         memset(pp[i], '\0', sizeof(char)*strlen(a));
    }

    char* pTmp = a;

    while(*pTmp)
    {
        if(*pTmp ==' ')
        {
            pp[j++][i] = ' ';
            nSum++;
            i = 0;
        }
        else
        {
            pp[j][i++] = *pTmp;

        }
        pTmp++;
    }

    for(i = nSum; i >= 0; i--)
    {
        printf("%s ", pp[i]);
    }
    printf("\n");

    for(i = 0; i < sizeof(char)*strlen(a); i++)
    {
        free(pp[i]);
    }
    free(pp);
    return 0;
}

2017-03-19 21:29
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    char str[100][20];//假设每个单词的最大长度为20,最大有100个单词 
    int i = 0; 
    while(true)
    {
        scanf("%s", str[i]);
        i++;
        if(getchar() == '\n')    break;
    }
    while(i--)
    {
        printf("%s", str[i]);
        if(i != 0)    printf(" ");
    }
    return 0;
} 
2017-03-19 21:31
小烧饼
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-12-17
收藏
得分:0 
回复 12楼 ldsh304
你这也没处理两段有空格的情况啊
2017-03-19 22:49
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
#include <stdio.h>
main()
{
    char *s=" I  am   student    ";
    char *p=s, *ap[100], al[100];
    int i=-1;
    while (*p)
    {
        ap[++i] = p;
        if (*p == ' ')
            for (; *p && *p==' '; p++) NULL;
        else
            for (; *p && *p!=' '; p++) NULL;
        al[i] = p-ap[i];
    }
    for(; i>=0; i--)
        printf("%.*s", al[i],ap[i]);
}
2017-03-20 07:44
小烧饼
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-12-17
收藏
得分:0 
回复 14楼 吹水佬
还有两个测试用例通不过
2017-03-20 10:51
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用小烧饼在2017-3-20 10:51:33的发言:

还有两个测试用例通不过

哪两个?
2017-03-20 10:59
小烧饼
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-12-17
收藏
得分:0 
回复 16楼 吹水佬
就是前后有空格吧
2017-03-20 11:04
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
有没有前后有空格的正确输出模板?~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-20 11:17
小烧饼
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-12-17
收藏
得分:0 
回复 18楼 九转星河
看不到测试用例
2017-03-20 11:50
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用小烧饼在2017-3-20 11:04:29的发言:

就是前后有空格吧

可以先忽略前后空格。
试试从右至左,取一个输出一个,这样可以节省中间环节。
2017-03-20 11:52
快速回复:这题就很怪!
数据加载中...
 
   



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

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