• Geek_Andy_Lee00
    2020-01-18
    看了老师的答疑,解决了前面不少的困惑。至于那个迷你随机数,是真的不怎么懂。先放着吧,先广后精,嘿嘿。还有,给老师提一个小小建议,就是在示例代码中加入一些文字,这样可读性更强,对初学者更友好。不然面对一个黑框框,初学者容易懵,不知道该干嘛了。去掉倍数那个思考题,自己也实现了,代码如下,但是老师的方法应该应用更加广泛。
    #include <stdio.h>
     
    int main(){
        int n, m;
        printf("请输入两个数:\n");
        scanf("%d%d", &n, &m);
        int arr[n];
        int i, j;
        for (i = 0; i < n; i++) {
            printf("输入第%d个正整数:\n", i+1);
            scanf("%d", &arr[i]);
        }
        printf("\n");
        for (j = 1; j <= m; j++){
            for (i = 0; i<n; i++){
                if (j % arr[i] == 0) break;        //能被n个不同正整数中某个整除则跳出循环,进入if语句
                }
            if (i == n) printf("%d\n", j); // 如果i == n,则说明for循环一直进行到最后j都没有被n个不同正整数中的任意一个整除,此时j符合要求,输出
            }
        return 0;
        }
    展开

    作者回复: 好的,你的建议非常好,我会在后面的文章中采纳,你的代码方法也是对的。d(^_^o)

    
     2
  • 信念
    2020-02-05
    第一个位数输出的程序
    第7行的char output[50];
        int ret = sprintf(output, "%d", n)
    没太看懂,ret是什么意思呀?

    作者回复: ret是个整形变量啊。没什么特殊的。

     1
    
  • 奔跑的八戒
    2020-01-18
    渐入佳境,跟着学就是了。

    作者回复: d(^_^o)

    
    
  • 奔跑的八戒
    2020-01-18
    j == 1 || printf("\t");
    老师这样语句,c 的编译器一定从左往右一个一个条件判断(计算值)吗?
    有可能从右往左或者随机吗?

    作者回复: 对,你上网搜运算符优先级,其中每一个等级的运算符都有一个计算顺序,条件或的计算顺序是从左向右。这是有规定的,跟编译器无关。

    
    
  • 梅利奥猪猪毛丽莎肉...
    2020-01-18
    其实有挺多东西想说的,首先我的确是七大罪动漫爱好者,虽然现在动画有点ppt了,哈哈扯远了,先说那个乘法表,那个或的知识应该是短路或者惰性的知识吧,我是个前端工程师,有时候就会写到条件&&函数(),这个其实就是条件为真则执行函数,然后还看到过个类似的基础题,true||true&&false答案是true,新手可能直接回答错,从左往右看,认为是false,稍微厉害点的,看优先级,然后得出答案是true,其实这边在多想一步,优先级先计算了右边的true&&false,但true||任何其他什么,肯定就是true,希望自己理解是对的,至于后面个迷你随机数,真的难,哈哈刚看了下互质和欧拉,勉强看懂,有种被要被劝退的感觉,关于随机数随机种子这个其实挺有兴趣的,兴趣来源于一个例子,叫做游戏里随机的场景,用户中途退了,下次进入场景和之前退出的游戏场景一致,就是用了随机种子,然后那个例子实现这个随机函数,用了三个很奇怪的数字,这个当时看也没有看的特别懂,总结就是虽然不知道怎么回事,但总觉得很厉害,学无止境,还是要持续的坚持学习~

    作者回复: d(^_^o)

    
    
我们在线,来聊聊吧