c语言在线请教 - 爱问答

(爱问答)

c语言在线请教

#include <stdio.h>#include"conio.h"void  wwjt();   long fun(int n){ long i,k; long s=1; for(i=2;i<=n;i++)  for(k=2;k<i;k++)  {   if(i%k==0)    break;   if(k==i)    s*=i;  }  return s;  }
main()   {  int  m;  printf("Enter m: ");  scanf("%d", &m);  printf(" The result is %ld ", fun(m));  wwjt();}  
void wwjt(){  FILE *IN,*OUT;  int c ;  int t;  long o;    IN=fopen("in.dat","r");  if(IN==NULL)  {    printf("Read FILE Error");  }  OUT=fopen("out.dat","w");  if(OUT==NULL)  {    printf("Write FILE Error");  }   for(c=1;c<=5;c++)  {     fscanf(IN,"%d",&t);    o=fun(t);    fprintf(OUT,"%ld ",o);  }  fclose(IN);  fclose(OUT);}
为什么这个运行的结果一直都是1???

你的

  if(k==i)

位置不对,它永远不可能相等

若k<i时, if(i%k==0) 跳出循环,执行不到if(k==i)

若k==i,循环结束了,也不能执行到if(k==i)

虽然不知你程序的目的,但估计是你的{}写错了(位置不对,且漏了)

以下改好的,可以求素数的乘积

long fun(int n) {
   long i,k;
   long s=1;
   for(i=2; i<=n; i++) {
       for(k=2; k<i; k++)  {
           if(i%k==0)
               break;
       }
       if(k==i)
           s*=i;
   }
   return s;
}


相关标签:c语言

下一篇:Python求一个能有效加密python代码的方法

上一篇:系统在传输封装数据时,系统是怎么解决数据的实时性问题

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?