素数读取器

时间:2019-02-18 12:52:10

标签: c

这是我在这里的第一篇文章,因此看起来可能不太好。我正在尝试编写代码以读取数字是否为质数。我一直在寻找帮助,因为这是我的代码:

#include <iostream>
#include <stdio.h>


int main()
{
  int getal;
  int i;

  printf("Voor een getal in: ");
  scanf("%/n", &getal);


  for(i = 2; i <= getal / 2; ++i)
  {
    if(getal % i == 0)
    {
      printf("Dit is een priemgetal");
      system("PAUSE");
    }
    else 
    {
      printf("Dit is geen priemgetal");
    }
  }
  return 0;
}

它的问题是它不会在最后显示给我printf。

1 个答案:

答案 0 :(得分:0)

您的代码有多个问题:

  • 不需要C ++ <iostream>包含文件
  • 相反,您应该包括定义<stdlib.h>函数的system()
  • 格式字符串scanf("%/n", &getal);不正确。请改用"%d"
  • 不应该为每个尝试的除数打印消息,您应该为质数测试使用一个额外的变量,并在最后打印消息。
  • 用换行符结束输出。
  • 您正在执行性能较差的IDE中进行编程。您的程序显示输出,但是除非您请求用户输入,否则立即关闭窗口。将system("PAUSE");移动到main函数的末尾。

这是更正的版本:

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

int main() {
    int getal;
    int i;
    int isprime;

    printf("Voor een getal in: ");
    scanf("%d", &getal);

    isprime = 1;
    for (i = 2; i <= getal / 2; ++i) {
        if (getal % i == 0) {
            isprime = 0;
            break;
        }
    }
    if (isprime) {
        printf("Dit is een priemgetal\n");
    } else {
        printf("Dit is geen priemgetal\n");
    }
    system("PAUSE");
    return 0;
}