| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:简单的小程序,但我找不出它的错误
只看楼主 加入收藏
无事学编程
Rank: 1
等 级:新手上路
帖 子:60
专家分:5
注 册:2012-11-2
结帖率:82.35%
收藏
已结贴  问题点数:20 回复次数:18 
简单的小程序,但我找不出它的错误
# include <stdio.h>
int main()
{
 int m,n,r;
 n=2;
 scanf("m=%d",&m);
 while (n<=m/2)
 {
  r=m%n;
  n=n+1;
 }
 if(r=0) printf("not prime\n");
 else  printf("prime\n");
 return 0;
}

搜索更多相关主题的帖子: include 
2012-11-07 16:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
再看看书上逻辑表达式的内容

授人以渔,不授人以鱼。
2012-11-07 16:35
黄少钦
Rank: 1
来 自:广东-东莞-长安
等 级:新手上路
帖 子:6
专家分:6
注 册:2012-11-2
收藏
得分:2 
IF后面是不是应该这样写呀.if(r==0),你试试行不行.我也是初学者,说错了别怪我.共同学习!
2012-11-07 16:46
无事学编程
Rank: 1
等 级:新手上路
帖 子:60
专家分:5
注 册:2012-11-2
收藏
得分:0 
回复 2楼 TonyDeng
恩恩
2012-11-07 16:54
无事学编程
Rank: 1
等 级:新手上路
帖 子:60
专家分:5
注 册:2012-11-2
收藏
得分:0 
回复 3楼 黄少钦
共同学习
2012-11-07 16:54
黄少钦
Rank: 1
来 自:广东-东莞-长安
等 级:新手上路
帖 子:6
专家分:6
注 册:2012-11-2
收藏
得分:0 
我运行过你的程序,可以出来,是结果输出错吗?还是......
2012-11-07 16:55
Amycoa
Rank: 2
等 级:论坛游民
帖 子:18
专家分:56
注 册:2012-10-27
收藏
得分:2 
回复 楼主 无事学编程
程序代码:
# include <stdio.h>
int main()
{
    int m, n, r;
    n = 2;
    scanf("%d",&m);        // 去掉了"m=",要不然在输入的时候必须按格式输入"m="
    while (n <= m/2)    //取m/2这个范围是不准确的,可以自行查阅素数算法,看懂即可
    {
        r = m%n;

        if(r == 0)    //找到其它因数是跳出循环
            break;

        n = n + 1;    //    可以写成n++;
    }

    if(n == (m/2)+1)    // "="是赋值,"=="才是比较相等的意思
    {
        printf("prime\n");
    }
    else
    {
        printf("not prime\n");
    }

    system("pause");    // VS2012中只警告,我就没有添加 #include<stdlib.h>或#include<windows.h>
    return 0;
}

C/ASM ReGo ! .. ...Amy.Coa
2012-11-07 18:16
Glost
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:54
专家分:48
注 册:2010-10-5
收藏
得分:2 
以前老师怕我们把逻辑表达式写成赋值语句,都让我们这么写来着!  (0==X),这样就不容易出错了,虽然不是很好看...

只有一条路不能选择—那就是放弃的路;只有一条路不能拒绝—那就是成长的路。
2012-11-07 19:19
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:2 
这个程序的运行结果就是不管你输入m的值是什么,永远只输出printf("prime\n");
以为你的if()里恒为0,也就是逻辑非



本人新手,说错勿怪

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-07 19:48
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:2 
回复 楼主 无事学编程
#include<stdio.h>
int main()
{
    int m,n,r;
    n=2;
    scanf("%d",&m);//楼主这个地方你是怎么写的?怎么能写m=%d呢?
    while(n<=m/2)
    {
        r=m%n;
        n=n+1;
    }
    if(0==r) printf("not prime\n");//这个地方要这样写~~规范,不能写r=0
    else  printf("prime\n");
    return 0;
}
2012-11-07 21:29
快速回复:简单的小程序,但我找不出它的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028101 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved