| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:这个程序要怎么改,我纠结一晚上了,请教大神。。。。
只看楼主 加入收藏
睿影沉风
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-3-3
收藏
得分:0 
回复 7楼 梦幻乐园
还是有错的,在 s=fun(str);  这里有错
2013-03-03 22:37
睿影沉风
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-3-3
收藏
得分:0 
回复 6楼 azzbcc
输入一组数,然后把排在一起的相同的三个数删掉,要用函数的结构。
例如: 输入 122333  输出 122
2013-03-03 22:39
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
#include<stdio.h>
#include<string.h>
int fun(char str[100]);
int main(void)
{
    int i=0,k;
    char str[100];
    for(k=1;k>0;k++)
    {
        str[100]=fun(str);
        printf("%s\n",str);//就是这里的问题,不能是str[100],应该只是str,数组的首地址就行。
     }
    return 0;
}
 
int fun(char str[100])
{
    int x,j,i;
    scanf("%s",str);
    x=strlen(str);
    for(i=0;i<x;i++)
    {
        if(str[i]==str[i+1] && str[i+1]==str[i+2] )
        {
            j=i;
            for(j;j<x;j++)
            {
                str[j]=str[j+3];
            }
            x=x-3;
        }
    }
    str[x]='\0';
    return str[100];
}
2013-03-03 22:41
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
不过你这个是有问题的,如果输入aaabbbccc则结果是bbb,你并没有考虑到所有的情况,你还是可以做的更好的,看好你哟!
2013-03-03 22:47
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:20 
#include<stdio.h>
#include<string.h>
int fun(char str[100]);
int main(void)
{
    int i=0,k;
    char str[100];
    for(k=1;k>0;k++)
    {
        str[100]=fun(str);
        printf("%s\n",str);//楼主出问题的地方。
     }
    return 0;
}
 
int fun(char str[100])
{
    int x,j,i;
    scanf("%s",str);
    x=strlen(str);
    for(i=0;i<x;i++)
    {
        if(str[i]==str[i+1] && str[i+1]==str[i+2])
        {
            j=i;
            --i;//在此处把i再减一就可以防止输出3个一样的输入字符。
            for(j;j<x;j++)
            {
                str[j]=str[j+3];
            }
            x=x-3;
        }
    }
    str[x]='\0';
    return str[100];
}
2013-03-03 22:51
睿影沉风
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-3-3
收藏
得分:0 
回复 14楼 shmilyflf
太谢谢你了,有这个就行了,能到这步就满足要求了
2013-03-03 22:57
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
程序代码:
#include <stdio.h>

void fun(char *s)
{
    char *p, *q;
    for (p = s; *p; ++p)

    if (*p == *(p+1) && *p == *(p+2))

    for (q = p--; *q = *(q+3); ++q);
}

int main()
{
    char s[100];
    gets(s);
    fun(s);
    puts(s);
    return 0;
}


[fly]存在即是合理[/fly]
2013-03-03 23:19
快速回复:这个程序要怎么改,我纠结一晚上了,请教大神。。。。
数据加载中...
 
   



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

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