c - mod C 的问题

标签 c math division

<分区>

我刚开始做 codeforces 问题,我从问题 4-A(西瓜)开始,其中给定一个 int x 公斤数,如果当你将西瓜分成两半时,程序将打印"is",每个都有偶数公斤,如果不是“否”。 我这里的问题是当输入为 5 时我得到"is",它应该是“否” 这是我的代码:

#include <stdio.h>
int main (int x) {
    if((x/2) % 2 == 0) {
        printf("YES");
    }else {
        printf("NO");
    }
    return 0;
}

最佳答案

问题与mod无关,与参数传递有关。

main 的典型原型(prototype)是

int main(int argument_count, char *arg_list[], ...);

调用 my_exe 5 会将第一个参数 x (argument_count) 设置为 2,而下一个未使用参数

arg_list[0] = "my_exe",  // the first (0th) argument is the executable name
arg_list[1] = "5"        // rest of parameters as arrays of chars

调用 my_exe 不带参数集 x = 1 给出 YES

另外,如果参数 x 是一个十进制值为 53 (0x35) 的字符 '5',则结果为 YES。这将是非常规的行为,但在某些未公开的 IDE 或编码框架中绝对有可能。

关于c - mod C 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955491/

相关文章:

c - 在 C 中构建 Windows UI 是否有一种轻松的方法?

c - 在 Windows 上删除名为 "NUL"的文件

java - 碰撞检测中出现抖动

assembly - 为什么 Clang 只从 Sandy Bridge 开始做这个优化技巧?

python - 将字典的值除以另一个字典python的值

optimization - 将整数除以 3 的最快方法是什么?

C `signal` 参数太少

c++ - 任何在 64 位机器上使用 8 个字节作为 int 数据类型大小的 C/C++ 编译器

algorithm - 在 big-O 中使用 < 或 ≤

math - 平方变换是什么意思?