关于if的疑问
#include <stdio.h>int x;
int susu()
{
int t,i;
t=0;
for(i =2;i<x-1;i++)
{
if(x/i == 0) //为什么当x为8时无法进入?此时x/i为0,按道理条件成立,应该进入循环才对。
{
t=2;
}
}
if (t!=2)
{
printf("是素数");
}
if (t==2)
{
printf("不是素数");
}
}
void main()
{
printf("输入一个数");
scanf("%d",&x);
susu();
}
如代码的注释 余用%,/是除法 8 除 2 = 4 不是 0 if(x/i == 0) //为什么当x为8时无法进入?此时x/i为0,按道理条件成立,应该进入循环才对。
if(x % i == 0) //你的意思应该是取余吧? 你的代码应该是要取模 %
if(x%i == 0) 又又有大意了 #include <stdio.h>
int x;
void isPrime() // 没有返回任何东西就用 void
{
int res = 0;
for(size_t i = 2; i < x-1; i++){
if(!(x%i)){ // 假设 x%i == 0
res = 1;
break; // 发现不是素数时,就退出循环,不用继续
}
}
if(res || x < 2) printf("不是素数"); // 当 res = 1 时或者 x < 2时,不是素数
else printf("是素数"); // 否则是素数
}
int main(){ // main() 主函数必定是 int 最终返回 0
printf("输入一个数:");
scanf("%d", &x);
isPrime(); // 调用函数
return 0;
}
页:
[1]