老牛来学习 发表于 2020-3-18 16:22:31

C语言

下面那两段代码哪里错了,为什么执行会报错?


#include<stdio.h>
bool Isprime(int m)
{

    int j;

      for(j = 2; j < m; j++)
      {
            if(m % j == 0)
            {
                break;
            }
      }
      if(m == j)
      {
            return ture;
      }
}
int main()
{
    int i,num;
    printf("请输入一个数字:");
    scanf("%d",&num);
    for(i = 2; i<=num; i++)
    if(Isprime(i))
    {
      printf("%d是素数\n",i);
    }
    return 0;
}


bool IsPrime(int val)
{
    int i;

    for(i = 2; i<val; ++i)
    {
      if(0 == val % i)
      {
            break;
      }
    }
    if(i == val)
      return true;
    else
      return false;
}

int main()
{
    int val;
    int i;

    scanf("%d",&val);
    if(IsPrime(val))
      printf("Yes!\n");
    else
      printf("No!\n");
}

最后的魁拔 发表于 2020-3-18 16:27:46

是不是没加头文件
#include <stdbool.h>

qiuyouzhi 发表于 2020-3-18 16:29:43

第一个:
#include<stdio.h>
#include <stdbool.h>
bool Isprime(int m)
{

    int j;

      for(j = 2; j < m; j++)
      {
            if(m % j == 0)
            {
                break;
            }
      }
      if(m == j)
      {
            return true;
      }
}
int main()
{
    int i,num;
    printf("请输入一个数字:");
    scanf("%d",&num);
    for(i = 2; i<=num; i++)
          if(Isprime(i))
          {
                printf("%d是素数\n",i);
          }
    return 0;
}
true拼写错误,逻辑你自己改吧
第二个:
#include <stdio.h>
#include <stdbool.h>

bool IsPrime(int val)
{
    int i;

    for(i = 2; i<val; ++i)
    {
      if(0 == val % i)
      {
            break;
      }
    }
    if(i == val)
      return true;
    else
      return false;
}

int main()
{
    int val;
    int i;

    scanf("%d",&val);
    if(IsPrime(val))
      printf("Yes!\n");
    else
      printf("No!\n");
}
bool只有stdbool.h这个头文件里有,
要先导入

--_--|| 发表于 2020-3-18 16:30:28

本帖最后由 --_--|| 于 2020-3-18 16:31 编辑

#include<stdio.h>
#include<stdbool.h>//需要声明布尔类型
bool Isprime(int m)
{

    int j;

      for(j = 2; j < m; j++)
      {
            if(m % j == 0)
            {
                break;
            }
      }
      if(m == j)
      {
            return true;//单词拼错了
      }
}
int main()
{
    int i,num;
    printf("请输入一个数字:");
    scanf("%d",&num);
    for(i = 2; i<=num; i++)
    if(Isprime(i))
    {
      printf("%d是素数\n",i);
    }
    return 0;
}

zxname 发表于 2020-3-18 17:29:05


#include<stdio.h>
bool Isprime(int m)
{
    int j;
    for(j=2;j<m;j++)
    {
      if(m%j==0)
      return 0;
    }
    return 1;   
}
int main()
{
    int i,num;
    printf("请输入一个数字:");
    scanf("%d",&num);
    for(i=2;i<=num;i++)
    if(Isprime(i)==1)
    {
      printf("%d是素数\n",i);
    }
    return 0;
}
页: [1]
查看完整版本: C语言