标题:为什么?????
只看楼主
songweiwen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-2-19
 问题点数:0 回复次数:9 
为什么?????
这是一个判断素数的程序:
为什么当我输入0.5(任何一个小于1的小数)时,程序会不断的循环而且停止不了呢??
#include <math.h>
main()
{void prime(int);int a;
do{printf("Please input a number(>1):");
scanf("%d",&a);}while(a<=1);
prime(a);}
void prime(int a)
{int b;
b=sqrt(a);
for(;b>=2;b--)
{if(!(a%b)){printf("\n%d is a he shu !!",a);break;}}
if(b==1)
printf("\n%d is a prime number!!",a);}
搜索更多相关主题的帖子: include number 
2006-04-14 11:38
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
以下是引用songweiwen在2006-4-14 11:38:00的发言:
这是一个判断素数的程序:
为什么当我输入0.5(任何一个小于1的小数)时,程序会不断的循环而且停止不了呢??
#include <math.h>
main()
{void prime(int);int a;
do{printf("Please input a number(>1):");
scanf("%d",&a);}while(a<=1);
prime(a);}
void prime(int a)
{int b;
b=sqrt(a);
for(;b>=2;b--)
{if(!(a%b)){printf("\n%d is a he shu !!",a);break;}}
if(b==1)
printf("\n%d is a prime number!!",a);}

你先弄清楚do{
       }while(表達式)的用法吧!!
當你輸入小於1的數時,do while是不停的循環,至到你輸入一個數大於或者等於1時才會結束

2006-04-14 11:56
xiaohuli120
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2006-4-10
得分:0 

乱的很,好象写了个病毒


2006-04-14 12:03
xiaohuli120
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2006-4-10
得分:0 
给他胡改一下子
#include <math.h>
void prime(int a)
{
int b,i;
b=sqrt(a);
for(i=2;i<=b;i++)
if(a%i==0) break;
if(i>b)
printf("%d is a prime number!!\n",a);
else printf("%d is not a prime number!!\n",a);
}
main()
{
int a;
printf("Please input a number(>1):");
scanf("%d",&a);
if(a<=1)
printf(" error !\n");
else
prime(a);
}
这样应该能用啦

2006-04-14 12:25
え元元え
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-4-7
得分:0 
同意2楼的观点 `

2006-04-14 13:01
songweiwen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-2-19
得分:0 

怎么就没人解决死循环的问题呢??????


Finding!!!
2006-04-16 20:39
冷酷小子
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-4-16
得分:0 

你按TC的格式写行不看的俺光晕!

2006-04-16 20:45
queyapahaha
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-5
得分:0 
#include <math.h>
main()
{void prime(int);float a;
do{printf("Please input a number(>1):");
scanf("%f",&a);}while(a<=1);
prime(a);}
void prime(int a)
{int b;
b=sqrt(a);
for(;b>=2;b--)
{if(!(a%b)){printf("\n%d is a he shu !!",a);break;}}
if(b==1)
printf("\n%d is a prime number!!",a);}


好了
不回出现死循环了

我为程狂!!
2006-04-16 21:55
songweiwen
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2006-2-19
得分:0 

高!!谢谢!!


Finding!!!
2006-04-17 12:32
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 
又学了些,谢谢!

对不礼貌的女生收钱......
2006-04-17 18:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57423-1-1.html




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

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