标题:新手求大神,求帮助
只看楼主
xzkmz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-19
结帖率:100%
已结贴  问题点数:20 回复次数:5 
新手求大神,求帮助
这个出不来,不知道咋错了?希望得到帮助.
#include <stdio.h>
#include <math.h>
int i;
{
    intj,tmp=sqrt(i)+1;
    if(i==2)
        return 1;
    for(j=2;j<=tmp;j++)
        if(i%j==0)
            return 0;
        return 1;
}
void main()
{
    inti,j,'cnt'=0;
    for(i=4;i<=400;i+=2)
    {
        for(j=2;j<i;j++)
            if(prime(j)&&prime(i-j))
            {
                if(i%8==4)
                    printf("\n");
                printf("%4d+%4d=%4d",j,i-j,i);
                break;
}
if(j==i)
{
printf("\n歌德巴赫猜想不成立!\n");
return;
}
}
printf("\n歌德巴赫猜想在4-400之间是成立的!\n");
}
搜索更多相关主题的帖子: tmp void include return 
2012-11-19 11:42
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
得分:2 
先不说哥德巴赫猜想本身,再看看代码本身写法和语法有没问题吧,很简单的错误
2012-11-19 11:53
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3450
专家分:19340
注 册:2012-3-31
得分:0 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-19 12:29
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
得分:10 
楼主你好,你的程序这么修改后就可以运行了
程序代码:
#include <stdio.h>
#include <math.h>
int prime(int i);
int prime(int i)//前面函数定义要写申明和函数明
{
    int j,tmp;
    tmp=sqrt(i)+1;
    if(i==2)
        return 1;
    for(j=2;j<=tmp;j++)
        if(i%j==0)
            return 0;
        return 1;
}

void main()
{
    int i,j,cnt=0;//这儿去掉引号,另外你int和i之间要留空格
    for(i=4;i<=400;i+=2)
    {
        for(j=2;j<i;j++)
            if(prime(j)&&prime(i-j))
            {
                if(i%8==4)
                    printf("\n");
                printf("%4d+%4d=%4d",j,i-j,i);
                break;
        }
       if(j==i)
       {
        printf("\n歌德巴赫猜想不成立!\n");
        return;
       }
     }
printf("\n歌德巴赫猜想在4-400之间是成立的!\n");
}

2012-11-19 19:41
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
得分:8 
楼上正解
#include <stdio.h>
#include <math.h>
int i;  这里要有函数名啊,不然怎么调用
{
    intj,tmp=sqrt(i)+1;  我没见到过在定义变量时调用函数,虽然我在编译器上测试通过了,但是没见过这么用的
    if(i==2)
        return 1;
    for(j=2;j<=tmp;j++)
        if(i%j==0)
            return 0;
        return 1;
}
void main()
{
    inti,j,'cnt'=0;   用单引号的表示他是字符,是常量,不是变量
    for(i=4;i<=400;i+=2)
    {
        for(j=2;j<i;j++)
            if(prime(j)&&prime(i-j))
            {
                if(i%8==4)
                    printf("\n");
                printf("%4d+%4d=%4d",j,i-j,i);
                break;
}
if(j==i)
{
printf("\n歌德巴赫猜想不成立!\n");
return;
}
}
printf("\n歌德巴赫猜想在4-400之间是成立的!\n");
}

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-19 19:55
xzkmz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-19
得分:0 
,谢谢各位帮忙
2012-11-23 08:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-387533-1-1.html




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

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