小编fun*_*ptr的帖子

快速排序示例中的错误(K&R C书)?

这个快速排序应该将"v [left] ... v [right]排序为增加顺序"; K&R(第二版)从C编程语言中复制(不带注释):

void qsort(int v[], int left, int right)
{
    int i, last;
    void swap(int v[], int i, int j);

    if (left >= right)
        return;
    swap(v, left, (left + right) / 2);
    last = left;
    for (i = left+1; i <= right; i++)
        if (v[i] < v[left])
            swap(v, ++last, i);
    swap(v, left, last);
    qsort(v, left, last-1);
    qsort(v, last+1, right);
}
Run Code Online (Sandbox Code Playgroud)

我觉得有一个错误

(left + right) / 2
Run Code Online (Sandbox Code Playgroud)

假设left = INT_MAX - 1且right = INT_MAX.由于整数溢出,这不会导致未定义的行为吗?

c integer-overflow qsort undefined-behavior

7
推荐指数
1
解决办法
1637
查看次数

C中有限的递归?

我跑了这个程序,然后输出

...

65088
65089
65090

然后它停了下来.Windows 7称a.exe停止工作.这是代码:

#include <stdio.h>

void go(void);

main()
{
    go();
}

void go(void)
{
    static int i = 0;
    printf("%d\n", i++);
    go();
}
Run Code Online (Sandbox Code Playgroud)

我认为这个程序应该由于递归而无限期地打印数字,但它会在65090停止!C代码是用gcc编译的.有任何想法吗?

c

6
推荐指数
3
解决办法
542
查看次数

当 src 不是有效站点时,Safari 不会调用 iframe onload

对于下面的 iframe,Safari 从不调用 onload 函数,也不会在 iframe 中显示任何内容。我测试过的所有其他浏览器都会调用 onload 并显示默认错误网页。

<html>
<body>
<iframe src="http://www.asdkjhjhkjhkjhjhjhfhkjhsdflkjahdsjfhasf.com"
        onload="alert('iframe loaded');">
</iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如果这个问题没有解决方案,那么我需要找到一种方法来检测iframe是否加载失败。

html javascript safari iframe

3
推荐指数
1
解决办法
6635
查看次数

Java:静态初始化块中的方法比主要的方法慢

出于某种原因,从main方法调用时,我的方法"bishops"运行得比从静态初始化块运行得快得多.这是正常的,还是一个错误?

public class Magic
{
    public static void main(String[] args)
    {
        bishops();
    }

    public static void bishops()
    {
        //PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("bishops.txt")));
        BISHOP_SHIFTS = new int[64];
        BISHOP_COMBOS = new long[64][];
        for (int square = 0; square < 64; square++) {System.out.println("bbb " + square);
            int NUMBER = bitCount(BISHOP_ATTACKS[square]);
            BISHOP_SHIFTS[square] = 64 - NUMBER;
            long x = BISHOP_ATTACKS[square];
            long[] MAPS = new long[NUMBER];
            for (int n = 0; n < NUMBER; n++) {
                int i = bitScan(x);
                MAPS[n] = …
Run Code Online (Sandbox Code Playgroud)

java methods

0
推荐指数
1
解决办法
322
查看次数

Java <identifier>预期错误?

编译这个程序时,我在循环中得到20个错误; 以下只是一个片段:

public static long[] bishopsMasks()
{
    long[] masks = new long[64];

    for (int j = 0; j < 8; j++)
    {
        for (int i = 0; i < 8; i++)
        {
            long x = 0L;

            for (int a = i + 1, int b = j + 1; a < 7 && b < 7; a++, b++)
                x |= bit(a, b);

            for (int a = i + 1, int b = j - 1; a < 7 && b …
Run Code Online (Sandbox Code Playgroud)

java compiler-errors

-1
推荐指数
2
解决办法
2239
查看次数