猿问

做了一个质数计算为什么没有2和3

以下为代码,今天才把turbo装上,第二天摸到书,自学中,请前辈指教

#include <stdio.h>

int pdzs(int zssr)
{
 int fenmu;
 int yushu;
 int yesno;           /*=1 shi zhi shu ,=0  bu shi zhi shu*/
 for(fenmu=2;zssr/fenmu>1;fenmu++)
  {
   yushu=zssr%fenmu;
   if(yushu==0)
   {
 yesno=0;            /* yesno=0 shi,bu shi zhi shu*/
 printf("%i bushi \n",zssr);    /*ce shi shu chu*/
 break;
   }
   yesno=1;
  }
 if(yesno==1)
 printf("%i \n",zssr);
}


main()
{
 int m;
 int chushu;
 int i;
 printf("ji shu ren yi zi ran shu yi nei de zhi shu(yao qiu da yu 2): \n");
 scanf("%d",&m);
 for(i=2;i<=m;i++)
 {
 printf("jisuan %i k    ",i);   /*ce shi shu chu*/
 pdzs(i);
 }
 printf("END! \n");
}

YORK_CAPPUCCINO
浏览 1064回答 4
4回答

浊酒丶

变量尽量不要用拼音,可以直接用a和b的,循环里的变量建议用i和j,然后布尔类型的可以写成is什么,比如说是否是素数isPrime,然后给个初值,这算是一种命名规范吧,然后没有c的IDE没办法写代码,zssr/fenmu>=1这个条件可以再优化一下的

YORK_CAPPUCCINO

已解决,把pdzs函数中for循环判断条件改成了zssr/fenmu>=1,原因应该是整数型除以整数型,结果也为整数,那么3/2=1

YORK_CAPPUCCINO

我看的书是C语言程序设计第二版,只看了第一章,实例只看了"hello world"和t=1+1/2+1/3+…+1/m
随时随地看视频慕课网APP
我要回答