鱼C论坛

 找回密码
 立即注册
查看: 863|回复: 7

为什么这个我写的跟答案一样但是运行不出来啊(第五行到第21行是我写的,其他是原代码

[复制链接]
匿名鱼油
匿名鱼油  发表于 2022-2-28 19:07:01 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 匿名 于 2022-2-28 19:09 编辑

题目是求出小于或等于lim的所有素数并放在aa数组中,并返回所求素数的个数
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
  int i,j,k=0;
  for(i=2;i<=lim;i++)
  {
          for(j=2;j<i;j++)
          {
                  if(i%j==0)
                          break;
                  if(j==i)
                  {
                          aa[k++]=i;
                  }
          }
  }
  return k;
}
void main()
{
  FILE *wf;
  int limit,i,sum;
  int aa[MAX];
  system("CLS");
  printf("输入一个整数:");
  scanf("%d",&limit);
  sum=fun(limit,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         printf("\n ");
      printf("%5d ",aa);
    }
/******************************/
  wf=fopen("out.dat","w");
  sum=fun(15,aa);        
  for(i=0;i<sum;i++)
     {
      if(i%10==0&&i!=0)    /*每行输出10个数*/
         fprintf(wf,"\n");
      fprintf(wf,"%5d ",aa);
    }
  fclose(wf);
/*****************************/
}

回复

使用道具 举报

发表于 2022-2-28 19:30:46 | 显示全部楼层
  1. if(j==i)
  2. aa[k++]=i;
复制代码

这句是执行不了的,因为 j<i 是条件
改成
if (j==i-1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 19:41:09 | 显示全部楼层
答案是j>=i;老师的视频是可以执行的,为什么啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 19:45:54 | 显示全部楼层
h-b-z-d-j-s-m 发表于 2022-2-28 19:41
答案是j>=i;老师的视频是可以执行的,为什么啊

用j==i-1运行出来后素数没有2,从3开始的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 22:58:08 | 显示全部楼层
哪道题的答案?
  1. for(j=2;j<i;j++)
复制代码

j是不会等于i的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 23:03:27 | 显示全部楼层
这样?

  1. for(i = 2; i <= lim; i++)
  2.   {
  3.         for(j = 2; j <= i; j++)
  4.         {
  5.                 if(j == i)
  6.                         aa[k++]=i;
  7.                 if(i % j == 0)
  8.                         break;
  9.         }
  10.   }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 23:19:36 | 显示全部楼层
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #define MAX 100
  5. int fun(int lim, int aa[MAX])
  6. {
  7.   int i,j,k=0;
  8.   for(i=2;i<=lim;i++)
  9.   {
  10.           for(j=2;j<=i;j++)
  11.           {
  12.                   if (i==2 || j==i)
  13.                            aa[k++]=i;
  14.             if(i%j==0)
  15.                 break;
  16.           }
  17.   }
  18.   return k;
  19. }
  20. void main()
  21. {
  22.   FILE *wf;
  23.   int limit,i,sum;
  24.   int aa[MAX];
  25.   system("CLS");
  26.   printf("输入一个整数:");
  27.   scanf("%d",&limit);
  28.   sum=fun(limit,aa);        
  29.   for(i=0;i<sum;i++)
  30.      {
  31.       if(i%10==0&&i!=0)    /*每行输出10个数*/
  32.          printf("\n ");
  33.       printf("%5d ",aa[i]);
  34.     }
  35. }
复制代码

输入一个整数:100
    2     3     5     7    11    13    17    19    23    29
    31    37    41    43    47    53    59    61    67    71
    73    79    83    89    97
--------------------------------
Process exited after 3.103 seconds with return value 25
请按任意键继续. . .
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-2 15:46:04 | 显示全部楼层

                               
登录/注册后可看大图


答案是这个为什么我运行不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 21:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表