【问题标题】:Here is my C function prog it takes input from user loop with if condition with use of break statement这是我的 C 函数 prog,它使用 if 条件从用户循环输入,并使用 break 语句
【发布时间】:2020-06-14 12:47:40
【问题描述】:

这是一个 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;
    }
  }

【问题讨论】:

  • if (Number == 0) 我认为你在那里遗漏了一些东西。也许if (Number % i == 0)

标签: c loops for-loop numbers break


【解决方案1】:

让我们逐行看:

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

开始一个for 循环,并迭代直到我们达到Number / 2 的值。因此,如果Number = 12i 将递增直到等于该值的一半,在本例中为6

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

如果Number 为零,则递增(加1)count 变量并停止循环。由于您正在检查素数,因此该行不正确。它应该是if (Number % i == 0)% 是模运算符,它将为您提供除法的余数。例如 12 % 6 是 0,因为没有余数。所以,如果有一个数可以整除Number,余数是0,则count 递增,这意味着Number 不是质数。

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

在这里,我们检查count 是否为0 并且Number 不为1。如果这两个条件都为真,那么我们找到了一个素数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2018-05-27
    相关资源
    最近更新 更多