【发布时间】:2021-03-29 23:47:18
【问题描述】:
当我分配除 0 以外的 rat 时,如果我分配 rat=0,它会正常工作,如果 rat 不是 0,我的程序会正常工作并给我正确的素数
#include<stdio.h>
int main()
{
printf("\nenter a number");
int num,rat;
scanf("%d",&num);
for(int i=2;i<num;i++)
{
if(num%i==0)
{
rat=0;
break;
}
}
if(rat==0)
{
printf("\nit is not a prime number");
}
else
{
printf("\nit is a prime number");
}
}
【问题讨论】:
-
你不会在任何地方给
rat一个初始值。也许它从零开始?未定义的行为。 -
int num, rat = any-non-zero-value; -
为什么要初始化为非零
-
如果你没有达到
rat=0;的分配,你怎么知道它是零还是非零? -
如果你要问这个,你为什么把
rat=0;这行放在里面?这条线的目的是什么?它是如何工作的?
标签: c if-statement variable-assignment