| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:高手指点。新手简单问题。
只看楼主 加入收藏
a9580643
Rank: 2
来 自:江西九江
等 级:论坛游民
帖 子:60
专家分:59
注 册:2011-4-21
收藏
 问题点数:0 回复次数:12 
高手指点。新手简单问题。
程序代码:
#include "stdio.h"
int main()
{
int a=0,b=0,c=0;
clrscr();
printf("Input:\n");
scanf("%d%d",&a,&c);
while(a<=c)
  {
  if(a%2==1)
     {
     b=a;
     printf("%d\n",b);
     }
     else
     a++; 
     }
     return 0;
}
。。估计错误很多,不过目的是求出输入两数之间的素数。
望高手给予纠正,指点。不甚感激。

[ 本帖最后由 a9580643 于 2011-6-11 00:44 编辑 ]
2011-06-11 00:42
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
楼主是要素数还是奇数?

程序代码:
#include "stdio.h"
int main() {
    int a = 0, c = 0;
    clrscr();
    printf("Input:\n");
    scanf("%d %d", &a, &c);    // 中间要加空格
    while (a <= c) {
        if (a % 2 == 1) {          // 这个是测试奇数用的,不能测试素数
            printf("%d\n", a);     // 直接用 a 就好,没必要再搞个 b
        }    
        a++;                       // 这一行不管 if 里的测试条件是否为真都应该被执行,不然会死循环
    }
    return 0;
}


[ 本帖最后由 voidx 于 2011-6-11 00:53 编辑 ]
2011-06-11 00:45
a9580643
Rank: 2
来 自:江西九江
等 级:论坛游民
帖 子:60
专家分:59
注 册:2011-4-21
收藏
得分:0 
回复 2楼 voidx
素数,只能被自己或1整除的数.

花有重开日,人无在少年。
2011-06-11 00:47
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
求素数的算法论坛里有很多,去搜一下吧
2011-06-11 00:54
a9580643
Rank: 2
来 自:江西九江
等 级:论坛游民
帖 子:60
专家分:59
注 册:2011-4-21
收藏
得分:0 
回复 2楼 voidx
怎么没有输出。。。。

花有重开日,人无在少年。
2011-06-11 01:03
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
程序代码:
int s(int a)
{int i;
for(i=2;i<a;i++)
if(a%i==0)
{return 0;
break;}
if(i>=a)
return 1;
}
main()
{int a,b,i;
while(1)
{
scanf("%d%d",&a,&b);
if(a>=2&&b>=2)
break;
else printf("请重新输入:");}
if(a>b)
{a=a+b;
b=a-b;
a=a-b;}
for(i=a;i<=b;i++)
if(s(i))
printf("%5d",i);
getch();
}
仅供参考!
2011-06-11 07:23
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 2楼 voidx
scanf("%d %d", &a, &c);    // 加不加空格都行,扫描时会跳过空白字符。

My life is brilliant
2011-06-11 09:19
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    int i,j,x,y;
    scanf("%d%d",&x,&y);
    while(x<=y&&x>2)
    {
        for(i=x;i<=y;i++)
        {    for(j=2;j<i;j++)
            {
                if(i%j==0) 
                    break;    
            }
            if(i==j)
            printf("%d  ",i);
        }
        break;
    }
    printf("\n");
    return 0;
}


测试两个整数之间有多少个素数。
2011-06-11 10:56
官人
Rank: 3Rank: 3
来 自:瓮安
等 级:论坛游侠
帖 子:88
专家分:152
注 册:2011-6-2
收藏
得分:0 
素数  应该百度都能拿到

   ---------------天道刚健,你不自强谁来帮你---------------
2011-06-11 11:04
韩54521风
Rank: 4
等 级:业余侠客
帖 子:75
专家分:212
注 册:2011-6-11
收藏
得分:0 
目的是求出输入两数之间的素数。
首先要弄懂的是素数的概念,即质数,只能被1和它本身整除的数。
再看看你的程序:不说错对,思想是求奇数。
#include "stdio.h"
int main()
{
int a=0,b=0,c=0;
clrscr();     /*这个函数,有很多的注意事项,如果是新手,最好是不要用*/
printf("Input:\n");
scanf("%d%d",&a,&c);
while(a<=c)     /*如果是a>c呢,这个情况直到结束也没有考虑*/
  {
  if(a%2==1)
     {     /*if好像后边不用{},一般就是一个语句*/
     b=a;                /*不用赋值直接printf("%d\n",a);就可以了*/

     printf("%d\n",b);
     }
     else
     a++;      /*这个a++;不应该在这里的,不然如果a是奇数的时候,这个循环就会不断的执行下去,成为了死循环把上面的else去了更好一点*/
     }
     return 0;
}
写程序的时候,弄明白题意,写的时候简练,尽量不要嵌套使用,很容易出错。循环语句尽量用switch。个人意见,希望能有帮助。
2011-06-11 12:15
快速回复:高手指点。新手简单问题。
数据加载中...
 
   



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

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