新手上线,问问这么编程是不是对的,为什么运行不起?

问题:有数被3除余1, 5除余2, 7除余4,9除余7, 11除余5, 13除余6, 17除余3, 19除余8,求解
(这是我看到的一个题目,就试试能不能用c语言解)
图片说明

一直运行不起,求指教,

你程序根本就不对,重新帮你写了一个,就穷举下就好了

#include <stdio.h>

int main()
{
    int x = 0;
    while (1)
    {
        if (x % 3 == 1 && x % 5 == 2 && x % 7 == 4 && x % 9 == 7 && x % 11 == 5 && x % 13 == 6 && x % 17 == 3 && x % 19 == 8) 
            break;
        x++;
    }
    printf("the num is %d\n", x);   
    return 0;
}

the num is 9252457

当然,也有数学上求最小公倍数之类的改进的方法,你可以自己研究下,毕竟这是编程问题不是数学问题,就不讨论了。

c语言不是数学计算器,不是解方程用的。等号的意思是赋值,把右边的值赋值到左边,后面那几个max%都是表达式肯定不对。
而且c语言的运算过程是你自己写出来的,也就是说你要自己想好怎么求解这个数,然后让c来帮你算。
就比如我告诉你max%那几行你肯定不能马上给我max的值,你也需要按照求解方法一步一步来算max,c只不过是帮你把算的过程用电脑实现。