DanielMZY 发表于 2019-11-15 00:00

新手学c遇到问题

题目是证明一个偶数的和由两个素数的和组成,但是代码运行出现错误。

代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,m,flag;
    printf("请输入一个偶数:");
    scanf("%d",&n);
    flag=prime(n);
    for(m=3;m<=n/2;m+=2)
    {
      if(prime(m)&&prime(n-m))
            printf("%d,%d\n",m,n-m);
    }

    return 0;
}
int prime(n)
{
    int i,k;
    k=sqrt(n);
    for(i=2;i<=k;i++)
      if(n%i==0)
      break;
      if(i<=k)
            return 0;
      else
            return 1;
      printf("ok");
}

鲸鱼jerry 发表于 2019-11-15 10:18

查看了代码没有任何问题,如果是在网上复制的代码,检查一下代码里有未被识别的字符,将那段字符注释掉就可以了。简单来说就是https://i.loli.net/2019/11/15/lnkOjxmZeYsIV7y.png把空白处都删掉

壁花少年 发表于 2019-11-15 10:36

我运行了一遍没有任何问题 你确定你复制出来的跟你运行时候的代码是一致的??

DanielMZY 发表于 2019-11-15 21:33

感谢大家!

秃头大太阳 发表于 2019-11-15 22:11

我运行没有问题。但是函数使用前不需要声明吗。。。?
以及函数这个n前面可以没有类型声明吗。。

壁花少年 发表于 2019-11-18 14:28

秃头大太阳 发表于 2019-11-15 22:11
我运行没有问题。但是函数使用前不需要声明吗。。。?
以及函数这个n前面可以没有类型声明吗。。

我主要些c++ 我也知道你说的这几个问题 但是楼主的c语言下跑着是没问题的

雨辰屮 发表于 2019-11-18 20:50

后面是int prime(int n)
最前面还要声明

秃头大太阳 发表于 2019-11-29 18:14

a348044847 发表于 2019-11-18 14:28
我主要些c++ 我也知道你说的这几个问题 但是楼主的c语言下跑着是没问题的

嗯嗯我想也是
页: [1]
查看完整版本: 新手学c遇到问题