这是我的C函数程序,它通过使用break语句的if条件从用户循环中获取输入。

问题描述 投票:0回答:1

这是一个C函数程序。它从用户那里获取输入,然后用 if 条件和用途 break 声明。

#include<stdio.h>
#include<conio.h>

int main()
{
  int i, Number, count = 0;

  printf("\n Please Enter any number to Check for Prime \n");

  scanf("%d", &Number);

  for (i = 2; i <= Number/2; i++) {
    if(Number == 0) {
      count++;
      break;
    }
  }

  if(count == 0 && Number != 1 ) {
    printf("\n %d is a Prime Number", Number);
  } else {
    printf("\n %d is Not a Prime Number", Number);
  }

  getch();

  return 0;
}

我不明白这个程序是如何工作的,谁能给我解释一下这部分的工作原理?

  for (i = 2; i <= Number/2; i++) {
    if(Number == 0) {
      count++;
      break;
    }
  }
c loops for-loop numbers break
1个回答
0
投票

让我们一行一行的来。

for (i = 2; i <= Number/2; i++)

开始一个 for 循环,并迭代,直到我们达到 Number / 2. 所以如果 Number = 12, i 将会递增,直到它等于该值的一半,在这种情况下 6.

 if(Number == 0) {
    count++;
    break; 
 }

如果 Number 为零,递增(加1) count 变量并停止循环。因为你是在检查质数,所以这一行是不正确的。应该是 if (Number % i == 0) 代替。% 是模数运算符,它将给出除法的余数。例如 12 % 6 是 0,因为没有余数。所以。count 是递增的,如果有一个数字可以除以 Number 余下的是 0意思是 Number 不是质数。

if(count == 0 && Number != 1 )

这里,我们检查 count0 AND Number 不是1。如果这两个条件都是真的,那么我们就找到了一个质数。

© www.soinside.com 2019 - 2024. All rights reserved.