鱼C论坛

 找回密码
 立即注册
查看: 990|回复: 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[i]);
    }
/******************************/
  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);
/*****************************/
}
[/i]
回复

使用道具 举报

发表于 2022-2-28 19:30:46 | 显示全部楼层
if(j==i)
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 | 显示全部楼层
哪道题的答案?
for(j=2;j<i;j++)
j是不会等于i的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 23:03:27 | 显示全部楼层
这样?
for(i = 2; i <= lim; i++)
  {
        for(j = 2; j <= i; j++)
        {
                if(j == i)
                        aa[k++]=i;
                if(i % j == 0)
                        break;
        }
  }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-28 23:19:36 | 显示全部楼层
#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==2 || j==i)
                           aa[k++]=i;
            if(i%j==0)
                break;
          }
  }
  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[i]);
    }
}

输入一个整数: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-11-18 10:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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