| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:字符,求代码纠错
只看楼主 加入收藏
runningfly
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-10-19
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:4 
字符,求代码纠错
请问怎么会在结果中输出中文“烫”呢?好奇怪,谁能帮帮我?
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int m,n,i,j,a;
    char s[20],t[20],u[100];
    gets(s);gets(t);
    m=strlen(s);n=strlen(t);
    if(m>=n)
        a=m;
    else
        a=n;
    m=0;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(s[i]!=t[j])
            {
                u[m]=s[i];
                m=m+1;
            }
        }
       
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(t[i]!=s[j])
            {
                u[m+1]=t[i];
                m=m+1;
            }
        }
    puts(u);
        return 0;
}
十分感谢

搜索更多相关主题的帖子: 中文 
2011-11-06 19:35
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:2 
那是因为你没有对数组初始化,定义的时候把char s[20],t[20],u[100];都初始化成0就行了
2011-11-06 20:30
runningfly
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-10-19
收藏
得分:0 
这个题的题目是:第二题
将在字符串s中出现、而未在字符串t中出现的字符构成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。
例如, 当s="112345", t="2467"时, u中字符的串为: "135"。

初始化了后我还是解决不了这个题目
2011-11-07 10:17
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    int m,n,i,j,a;
    char s[100],t[100],u[100]={0};
    gets(s);
    fflush(stdin);//清空键盘缓冲区;
    gets(t);
    m=strlen(s);
    n=strlen(t);
/*   if(m>=n)
       a=m;
    else
        a=n;
*/
      a=0;
    for(i=0;i<m;i++)
        {
            for(j=0;j<n;j++)
            {
                 if(s[i] == t[j])//只有发现s[i]等于t[j]立即跳出内层循环;
                {
                    break;
                }
                 else if(j==n-1)//当比较到t[j]最后一个元素还没有相等就把s[i]赋值给u[a];
                 {
                     u[a]=s[i];
                     a++;
                 }
               
            }
        }
    u[a]='\0';//给字符串后面加结束标记
      

 /*   for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            if(t[i]!=s[j])
            {
                u[m+1]=t[i];
                m=m+1;
            }
        }   
*/
    puts(u);
        return 0;
}

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-11-07 19:17
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:8 
因为输出"烫烫烫烫"是因为编译器会自动把未用函数的局部变量空间按字节全部初始化为CC
(打个比方,你定义一个10个元素的char数组,结果你初始化了2个元素,后面没初始化,没赋值,没有使用,就变CC了)
。CC CCH在Unicode的编码中就是表示中文的“烫”,所以就是很多“烫”字

兴趣是编程最好的老师
2011-11-07 19:40
快速回复:字符,求代码纠错
数据加载中...
 
   



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

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