鱼C论坛

 找回密码
 立即注册
查看: 1928|回复: 2

为什么无法得出数字

[复制链接]
发表于 2023-11-13 20:57:21 | 显示全部楼层
问题出在程序中的两个地方:

1. 在判断素数的循环中,如果a%b==0,应该将m设为0,然后跳出循环。否则,当a%b!=0时,会将m设为1,但在后续的循环中可能会再次将m设为0,导致判断错误。

2. 在输出素数的数组c中的最后一个元素时,应该输出c[d-1],而不是c[d]。因为数组的下标是从0开始的,所以最后一个元素的下标是d-1。

以下是修改后的代码:

  1. #include <stdio.h>
  2. int main() {
  3.     int a, b, c[10000], d = 0, n, m;
  4.     scanf("%d", &n);
  5.     for (a = 2; d < n; a++) {
  6.         m = 1;
  7.         for (b = 2; b < a; b++) {
  8.             if (a % b == 0) {
  9.                 m = 0;
  10.                 break;
  11.             }
  12.         }
  13.         if (m == 1) {
  14.             c[d] = a;
  15.             d++;
  16.         }
  17.     }
  18.     printf("%d", c[d-1]);
  19.     return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-6 03:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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