当前位置: 代码迷 >> C语言 >> 在vc6.0中正常运行,在c中却不成功!
  详细解决方案

在vc6.0中正常运行,在c中却不成功!

热度:163   发布时间:2008-04-08 15:57:13.0
在vc6.0中正常运行,在c中却不成功!
我想编一个求素数的程序。功能是等待输入起始和末尾的数字,然后输出其间的素数,这是源程序。程序1是我从网上找到的一个程序,2是我自己根据1编的,基本上是一模一样,可第一个程序就可以在win-tc中运行成功,第2个却不可以,只是黑窗口闪一下,并且窗口上好像什么输出也没有,我把我自己编的那个程序即程序2放到vc6.0中编译结果成功运行,这是什么原因呢?下面分别是我从网上复制的源程序1和我自己编写的程序2:
1
#include<stdio.h>
int main()
{
int n1,nm,i,j,flag,count=0;
do{
printf("Input START and END=?");
scanf("%d%d",&n1,&nm); /*输入求素数的范围*/
}while(!(n1>0&&n1<nm)); /*输入正确的范围*/
printf("...........PRIME TABLE(%d--%d)............\n",n1,nm);
if(n1==1||n1==2) /*处理素数2*/
{
printf("%4d",2);
n1=3;count++;
}
for(i=n1;i<=nm;i++) /*判定指定范围内的整数是否为素数*/
{
if(!(i%2))continue;
for(flag=1,j=3;flag&&j<i/2;j+=2)
/*判定能否被从3到整数的一半中的某一数所整除*/
if(!(i%j))flag=0; /*若能整除则不是素数*/
if(flag) printf(++count%15?"%4d":"%4d\n",i);

}
getch();
}
2.
#include<stdio.h>
main()
{
int i,j,flag,s,e,count=0;
printf("Input start and end:");
scanf("%d%d",&s,&e);
printf("..................prime table...............");
if(s==1||s==2)
{
printf("\n%4d",2);
s=3;count++;
}
for(i=s;i<=e;i++)
{
   if(!(i%2)) continue;
   for(flag=1,j=3;flag&&j<i/2;j+=2)
     if(!(i%j)) flag=0;
   if(flag)
   printf("\n%4d",i);
}
getch();
}

请高手指点一下!在这先谢了!
搜索更多相关的解决方案: 素数  int  运行  

----------------解决方案--------------------------------------------------------
你第2个程序没问题吧...刚在机器上用TC上运行了一下~~ 一切正常~~ 你是不是输入时有什么错误呢?
----------------解决方案--------------------------------------------------------
第二个程序正常 你输入的时候 要加个空格 或者是回车
----------------解决方案--------------------------------------------------------
  相关解决方案