| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 825 人关注过本帖
标题:编译出错,请问是为什么?是因为我的代码有问题吗?
只看楼主 加入收藏
叶小毛
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2010-4-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
编译出错,请问是为什么?是因为我的代码有问题吗?
#include<stdio.h>
#define TRUE 1
#define FALSE 0
typedef int Bool;
int main()
{
    Bool digit_seen[10];
    int digit;
    long int n,t;
    printf("Enter a number:");
    scanf("%ld",&n);
    while(n>0)
    {
        t=n;
        digit_seen[10]={0};
        while(t>0)
        {   
            digit=t%10;
            if(digit_seen[digit])
                break;
            digit_seen[digit]=TRUE;
            t/=10;
        }
        if(t>0)
            printf("Repeated digit\n\n");
        else
            printf("No repeated digit\n\n");
        printf("Enter a number again:");
        scanf("%ld",&n);
    }
    return 0;
}
这个程序是可以连续判断输入的数字是否有重复的数字。在编译的时候出现错误:error C2059: syntax error : '{'
大家帮忙看一下啊!
搜索更多相关主题的帖子: 编译 代码 
2010-05-26 00:00
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
你的代码没有什么大问题,稍作修改就可以过了。
附上修改后的代码:
程序代码:
#include<stdio.h>
#include<memory.h>//加上这个头文件

#define TRUE 1
#define FALSE 0

typedef int Bool;

int main()
{
    Bool digit_seen[10]={0};
    int digit;
    long int n,t;
    printf("Enter a number:");
    scanf("%ld",&n);
    while(n>0)
    {
        t=n;     
//        digit_seen[10]={false}; //你这里是想把数组的所有的元素都初始化为0是吧,只有在定义的时候才可以这么做,在这里这么做是不合法的,如果你还想这么做那就在这里定义这个数组。
        memset(digit_seen,0,sizeof(digit_seen));//这句替代原来上面的那句,就可以了
        while(t>0)
        {  
            digit=t%10;
            if(digit_seen[digit])
                break;
            digit_seen[digit]=TRUE;
            t/=10;
        }
        if(t>0)
            printf("Repeated digit\n\n");
        else
            printf("No repeated digit\n\n");
        printf("Enter a number again:");
        scanf("%ld",&n);
    }
    return 0;
}

 

[ 本帖最后由 南国利剑 于 2010-5-26 00:24 编辑 ]

南国利剑
2010-05-26 00:07
叶小毛
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2010-4-23
收藏
得分:0 
回复 2楼 南国利剑
本人是C语言初学者,对这个memset(digit_seen,0,sizeof(digit_seen));有点不懂
这句是什么意思呢?能不能给我解释一下?谢谢了!
2010-05-26 12:36
qq423000
Rank: 2
等 级:论坛游民
帖 子:21
专家分:20
注 册:2010-5-21
收藏
得分:7 
以下是引用叶小毛在2010-5-26 12:36:02的发言:

本人是C语言初学者,对这个memset(digit_seen,0,sizeof(digit_seen));有点不懂
这句是什么意思呢?能不能给我解释一下?谢谢了!
#include<memory.h>//加上这个头文件
应该是上面那个头文件里面的函数。
memset是函数名,括号里的第一个实参就是数组名,代表数组的起始地址,然后0应该就是要赋予的值,然后sizeof这是长度运算符,得到的应该是数组的长度。作用应该是全部赋予0值吧。
2010-05-26 13:02
ll2323001
Rank: 2
等 级:论坛游民
帖 子:56
专家分:61
注 册:2009-10-26
收藏
得分:3 
就是将制定的内存中,根据指定的长度赋值为0
2010-05-26 13:15
叶小毛
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2010-4-23
收藏
得分:0 
恩,我又去查了一下那个函数,基本上明白了
2010-05-26 23:19
叶小毛
Rank: 1
等 级:新手上路
帖 子:27
专家分:2
注 册:2010-4-23
收藏
得分:0 
谢谢了!
2010-05-26 23:19
快速回复:编译出错,请问是为什么?是因为我的代码有问题吗?
数据加载中...
 
   



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

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