大于等于号

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:03:20
下面是一段判断一个数是不是素数C程序代码,
#include "stdio.h"
main()
{
int m,i;
scanf("%d",&m);
for(i=2;i<=m;i++)
if(m%i==0)break;
if(i>=m)
printf("YES");
else
printf("NO");
getch();
}
其中第8行中“(i>=m)”出现一个大于等于号,“大于等于”中“大于”与“等于”的关系是什么?是“与”是“或”
按照数学逻辑应该是“或”
但如果把括弧内的内容改为“或”关系(即“((i>m)||(i=m)) ”)后运算结果和原先的是不一样的,这是为什么?
改为“与”关系也不对,改后括弧内容始终为0
那么C语言中“>=”到底是一种什么样的关系?与数学中“>=”有什么区别?
一连问了这么多问题,望回答者尽可能回答全部问题,如果实在不能回答这全部问题,希望你能回答最后一个问题即:
C语言中“>=”到底是一种什么样的关系?与数学中“>=”有什么区别?
先把奖励设为50分吧,如果有我满意的答案再追加50分,以慰回答者的辛苦劳动!

首先你这个程序有错误,YES和NO写颠倒了吧
你那种拆分数学上是没问题的,但是C上就有问题了,(i>m)||(i=m)的后半部分并不会判断i是否等于m,而是变成m的值赋予i,这样一来至少我的turbo c的编译就通不过了,你如果改成i==m,应该就没问题了吧

你是北大青鸟的?

#include "stdio.h"
main()
{
int i,j,k;
i=2;
k=0;
clrscr();
for (;i<=100;i++)
{
for (j=2;j<=i-1;j++)
if (i%j==0)
break;
if (k%10==0)
printf ("\n");
if (j>=i)
{
printf ("%d\t",i);
k++;
}
}
getch();
}

去年我们也学了C..可是只学了个皮毛..
我觉得应该这样理解.就是>=是一个符号.而不是两个..你把那个拆开了就是两个了.>=应该是"一个"独立的符号.是不应该拆分的!!..
你实验出的种种错误就说明了问题..把"一个"符号拆开,那原来的>=的性质就不存在了..