C编程,数组打印不正确
C programming , array not printing properly
因此,对于类,我们正在使用素数进行一些加密/解密算法。我正在制作这个节目的第一部分。我正试图让程序检查一个数字是否为素数。在这之后,我希望程序将该数字之前的所有素数存储在一个名为prime_array的数组中。我试着把这些结果打印在屏幕上。它并没有按照我想要的方式工作。我稍后会用这个来解密一些更复杂的东西。只是想看看是否有人能看到我的代码的哪一部分导致了问题。
代码:
#include <stdio.h>
int main()
{
int n;
int prime;
int prime_array[1000];
int prime_answer;
int j=0;
printf("enter a number for n : ");
scanf_s("%d", &n);
if (n % 2 == 1)
{
printf("Number is prime.");
getchar();
getchar();
for (int i = 0; i <= n; i++)
{
if (n - 1 % 2 == 1)
{
n--;
prime_array[j] = n;
j++;
}
else
{
// do nothing
}
}
}
else if (n % 2 == 0)
{
printf("Number is not prime.");
getchar();
getchar();
}
for (int k = 0; k<= 10; k++)
{
printf("nn %d",prime_array[k]);
if (k == 10);
{
getchar();
getchar();
}
}
}
问题是这个条件-
if (n - 1 % 2 == 1)
此表达式被视为(n-(1 % 2))==1
,因为%
的优先级高于-
,因此首先计算1 % 2
。由于1 % 2
是1
,表达式变为n-1
,所以在n
是2
之前,条件不会是true
(不是您想要的)。
你需要这样写-
if ((n - 1) % 2 == 1)
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 为什么这里打印的复数不正确?
- C++:我的简单计算器程序无法打印出来。我也认为我的变量命名不正确
- C++ cout 在擦除换行符后打印字符串不正确
- cout 打印的值不正确
- 菱形打印不正确
- 排序向量不断修改数据并打印不正确的结果
- C++字符串到字符串打印不正确,无法获取 unicode 路径
- 使用图像 8UC1 c++ 的 unchar 垫正确打印不正确
- 最长的公共子序列打印不正确
- 中缀到后缀转换器 + 评估程序正确打印到控制台,但不正确地打印到文本文件
- 为什么打印不正确?
- for_each打印数据不正确
- C编程,数组打印不正确
- 在c++中打印动态创建的负数会导致不正确的输出
- 打印uint8_t变量不正确
- 打印到文件的值不正确.串口通信程序
- PHP扩展值不正确打印原因
- Win32 编辑打印不正确的字符
- 漂亮的打印 - 使用格式不正确的C++代码测试漂亮的打印机