| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 562 人关注过本帖
标题:请帮忙看下程序哪里不妥。。。。
只看楼主 加入收藏
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:5 
请帮忙看下程序哪里不妥。。。。
程序的目的是:输入字符串a和b,然后将a中有但是b中没有的字母都赋值给字符串c,再把C中重复多余的字母删除,最后把字符串c输出。例如,a输入aabacadaef,b输入bcd,则c最终是aef.
一下程序运行时输入a和b后就无输出了,请各路高手帮忙看下哪里不妥
#include <stdio.h>
#include <string.h>
int main()
{
    void tihuan(char a[],int,int);
    int m,n,j,i,k=0,z=0,l;
    char a[20],b[20],c[20]={1};
    scanf("%s",a);
    scanf("%s",b);
    m=strlen(a);
    n=strlen(b);
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++) if(a[i]==b[j]) k=1;
        if(k==0) c[z++]=a[i];
        k=0;
    }
    l=strlen(c);
    for(i=0;i<l-1;i++)
        for(j=i+1;j<l;j++)
            if(c[i]=='\0') break;
            else if(c[i]==c[j])
            {
                tihuan(c,l,j);
                j=j-1;
            }
            printf("%s",c);
                return 0;
}
void tihuan(char a[],int l,int n)
{
    int i;
    for(i=n;i<l;i++)
        a[i]=a[i+1];
    a[l-1]='\0';
}

[ 本帖最后由 sala0127 于 2011-11-12 21:58 编辑 ]
搜索更多相关主题的帖子: 字母 include 字符串 
2011-11-12 21:20
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:10 
if(k=0) c[z++]=a[i];
问题在k=0,你少写了一个=号,是k==0.
 if(k=00) c[z++]=a[i];
2011-11-12 21:54
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
收藏
得分:0 
回复 2楼 heroinearth
额。。这个是发帖时疏忽打漏的,现在补上。请再帮忙看下还有什么不妥

[ 本帖最后由 sala0127 于 2011-11-12 21:59 编辑 ]
2011-11-12 21:57
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
修改这里后输出就是你要的结果。
2011-11-12 22:07
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    void tihuan(char a[],int,int);
    int m,n,j,i,k=0,z=0,l;
    char a[20],b[20],c[20]={1};
    scanf("%s",a);
    scanf("%s",b);
    m=strlen(a);
    n=strlen(b);
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++) if(a[i]==b[j]) k=1;
        if(k==0) c[z++]=a[i];
        k=0;
    }
    l=strlen(c);
    for(i=0;i<l-1;i++)
        for(j=i+1;j<l;j++)
            if(c[i]=='\0') break;
            else if(c[i]==c[j])
            {
                tihuan(c,l,j);
                j=j-1;
            }
            printf("%s",c);
                return 0;
}
void tihuan(char a[],int l,int n)
{
    int i;
    for(i=n;i<l;i++)
        a[i]=a[i+1];
    a[l-1]='\0';
}
修改这里后输出就是你要的结果。
2011-11-12 22:07
sala0127
Rank: 2
等 级:论坛游民
帖 子:56
专家分:52
注 册:2011-11-8
收藏
得分:0 
回复 5楼 heroinearth
嗯,有空去机房再试下,如果有问题再提问
2011-11-13 13:21
快速回复:请帮忙看下程序哪里不妥。。。。
数据加载中...
 
   



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

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