为了账号安全,请及时绑定邮箱和手机立即绑定

这样运行成功,输入错误,错在哪里?

#include <stdio.h>

int main()

{

    int m, n;

    for(m=2; m<=50; m++)

    {

for(n=2; n<m; n++)

       

{

        if(m%n==0 ,m == n)   //n循环结束后,如果m=n的话就输出m

            printf("%d  ", m);

}

}

return 0;    

}


正在回答

3 回答

这个我我试过了,匝一想是可行的,后来我看了下发现问题  if里的等式是不成立的 m==n 是不可能的,因为在上面for  你已经定了 n<m  所以是不可能出现 n==m的情况的。所以你运行成功输出错误。  

那么把上面的 n<m  换成n<=m 可行吗?   会输出东西,但是不是我们想要的素数。  你会发现  输出的结果是  2 3 4 5 6 7 。。。。     if(m%n==0 ,m == n)  因为每一个都可以被自身整除m%n==0    并且都可以成立 n=m 。

所以这样写还是行不通的。

4 回复 有任何疑惑可以回复我~

直接在下面加一个if(m=n)判断就可以了


0 回复 有任何疑惑可以回复我~
#1

慕粉4487960 提问者

不能if(m%n==0 ,m == n)?
2019-08-19 回复 有任何疑惑可以回复我~
#2

坚持下去灬 回复 慕粉4487960 提问者

你可以这样试试,我觉得你这个是可以的。 if(m%n==0&&m==n)
2019-08-22 回复 有任何疑惑可以回复我~

先不提正确结果怎么出来,但是if(m%n==0 ,m == n)这是什么东西?

1 回复 有任何疑惑可以回复我~
#1

慕粉4487960 提问者

改成if(m%n==0 ,m = n)?
2019-08-19 回复 有任何疑惑可以回复我~
#2

慕粉4487960 提问者

判断素数的条件啊
2019-08-19 回复 有任何疑惑可以回复我~
#3

小小疾飞 回复 慕粉4487960 提问者

谁告诉你这样写法的?
2019-08-19 回复 有任何疑惑可以回复我~
#4

慕粉4487960 提问者 回复 小小疾飞

内个。。。。自己理解的,所以我提问了。。。
2019-08-21 回复 有任何疑惑可以回复我~
#5

小小疾飞 回复 慕粉4487960 提问者

这样其实是用了逗号运算符,但是用在if的括号里总是不正确而且费解的。
2019-08-21 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

这样运行成功,输入错误,错在哪里?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信