想不明白的.....最好能再想想
如果实在想不明白,教你个办法,用printf()在程序运行过程中监视所有变量变化的情况,再用getch()进行单步跟踪,那样你就能很轻松的了解程序的数据流动情况了
“如闻仙乐耳暂明”。请LZ好好听听吧。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
想不明白的.....最好能再想想
如果实在想不明白,教你个办法,用printf()在程序运行过程中监视所有变量变化的情况,再用getch()进行单步跟踪,那样你就能很轻松的了解程序的数据流动情况了
“如闻仙乐耳暂明”。请LZ好好听听吧。

2006-05-08 20:10
我当然是运行了. 但还是不太明白. 谢谢.
建议用C-Free 等编译器单步调试~ 再不明白,你跳楼

2006-05-08 23:54
for(j=2;j*j<=i&&i%j;j++); //解释如下
循环条件:1。首先要求除数j小于等于i的算术平方根,
2。其次要求被检测的i不是j的倍数。
循环体呢:空语句(什么也不干)。
该语句等价于
for(j=2;j*j<=i;j++)if(i%j==0)break;
该语句还等价于
for(j=2; ;j++)if(j*j>i||i%j==0)break;
总之,break条件是循环条件的否定命题。
就本题而言,根据德·摩根律,
!(j*j<=i&&i%j!=0)可化简为
!(j*j<=i)||!(i%j!=0)也即
(j*j>i || i%j==0)
高中的“集合论”、大学的“离散数学”重要呵。

2006-05-09 07:01
for(j=2;j*j<=i&&i%j;j++); //解释如下
循环条件:1。首先要求除数j小于等于i的算术平方根,
2。其次要求被检测的i不是j的倍数。
循环体呢:空语句(什么也不干)。
该语句等价于
for(j=2;j*j<=i;j++)if(i%j==0)break;
该语句还等价于
for(j=2; ;j++)if(j*j>i||i%j==0)break;
总之,break条件是循环条件的否定命题。
就本题而言,根据德·摩根律,
!(j*j<=i&&i%j!=0)可化简为
!(j*j<=i)||!(i%j!=0)也即
(j*j>i || i%j==0)
高中的“集合论”、大学的“离散数学”重要呵。
"路漫漫兮, 吾将上下而求索" 谢谢.
2006-05-09 09:34
2006-05-09 10:43
改好了
int main(void){
int i,j,k;
int n;
for(i=100;i<=200;i++){
for(j=2;j<=i-1;j++) /*这边的算法可以再简单一点。j<=i/2*/
if( !(k=i%j) ) break;
printf("%d%s素数\n",i,k?"是":"不是");
}
return 0;
}
哇噻。我也写过这道题目。奇怪。再看看大家都讨论什么了。

2006-05-09 11:00
2006-05-09 11:22
谢谢你们啊!得到您们的帮助我好开心!因为这是老师要求做的,我必须好好的完成!但是由于我的编程水平实在是烂!自己编不出来,只好求助各位高手了!以后我得多多编程了!希望能提高自己的水平!当然我很希望能得到各位的帮助!有什么问题我还可以继续问吗?再次谢谢你们拉!
呵呵!辛苦了!请喝杯茶吧!
2006-05-09 20:31
2006-05-09 20:45
2006-05-09 20:50