小编klu*_*utt的帖子

我在Python代码中的合并排序返回[0]

我正在制作合并排序代码,但它没有排序.你看到它有什么问题吗?

def mergeSort(L):
if len(L) == 1:
    return L
else:
    # divide
    L1 = mergeSort(L[0:round(len(L)/2)])
    L2 = mergeSort(L[round(len(L)/2):len(L)])

    # merge
    i = 0
    j = 0
    K = []
    while i < len(L1) and j < len(L2):
        if L1[i] < L2[j]:
            K.append(L1[i])
            i=i+1
        else:
            K.append(L2[j])
            j=j+1
    return K
Run Code Online (Sandbox Code Playgroud)

输入:

L = [1,2,5,7,8,0,10,21,32,53,16,16,48,59,64,53,75,52,42,21,98,76??] 
Run Code Online (Sandbox Code Playgroud)

输出:

L = [0]
Run Code Online (Sandbox Code Playgroud)

python sorting merge mergesort python-3.x

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

可变长度嵌套循环Python

我试图在python中嵌套for循环的变量长度,并能够重用变量.

for i in range(0,256):
    for j in range(0,256):
        for k in range(0,256):
            ...
            myvar[i][j][k]...
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,有一个硬编码的嵌套for循环,长度为3.

它应该像这样工作:

for index[0] in range(0,256):
  for index[1] in range(0,256):
    for index[2] in range(0,256):
      ...
        for index[n-1] in range(0,256):
          for index[n] in range(0,256):
            myvar[index[0]][index[1]][index[2]] ... [index[n-1]][index[n]] ...
Run Code Online (Sandbox Code Playgroud)

对于任意值 n

python loops for-loop nested

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

C中&和&&的区别?

C &&&C 之间有什么区别?

我的老师给了我这个例子:

int a = 8;
int b = 4;
printf("a & b = %d\n", a & b);
printf("a && b = %d\n", a && b);
Run Code Online (Sandbox Code Playgroud)

输出:

a & b = 0;
a && b = 1;
Run Code Online (Sandbox Code Playgroud)

我不确定为什么这会在一个场景中返回true而在另一个场景中返回false.

c bitwise-operators logical-operators

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

calloc 是否将整个分配归零?

callocC 中的函数用于分配归零内存,该内存至少可以容纳指定大小的请求数量的元素。在实践中,大多数内存分配器可能会分配更大的块以提高效率并最小化碎片。在此类系统中分配的实际可用块大小通常可通过特殊函数发现,即_msizemalloc_usable_size

calloc确保整个可用块归零,还是仅将分配的请求计数 * 大小部分归零?

c malloc calloc

3
推荐指数
2
解决办法
709
查看次数

如果未检查函数返回值,如何强制编译错误?

如果我正在使用特定功能而不检查其返回值,我希望编译器发出错误。

我在Eclipse中使用GCC。

例如 :

int fun (){ return 3;}

void main ()
{
   printf("%d",fun ());
}
Run Code Online (Sandbox Code Playgroud)

我调用该函数fun并打印返回值,但不检查返回值。相反,我想强制执行以下操作:

int ret=fun();
if(ret != some_value) { /* Do something */ }
printf("%d",fun ());
Run Code Online (Sandbox Code Playgroud)

这可能吗?

c eclipse gcc compiler-errors return-value

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

Pass by address of value in C

I know the following is an example of pass by reference in C++, input is passed as a reference:

void add(int &input){
 ++input;
}
Run Code Online (Sandbox Code Playgroud)

I also know pass by reference is not available in C. My question is, does the above syntax mean something else in C (i.e pass by value or something), or is it meaningless? Trying to compile it in C gives this error:

error: parameter name omitted
Run Code Online (Sandbox Code Playgroud)

c

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

使用数组时后缀/前缀如何工作

以下是2个代码示例:

int k,j=1;
int x[4]={5,14,25,47};
k = x[j] + ++j;
printf("%d, %d",j,k);
Run Code Online (Sandbox Code Playgroud)

显示警告 - “对 'j' 的操作可能未定义”但输出为:2, 16

然后我尝试了这个:

int k,j=1;
int x[4]={5,14,25,47};
k = x[j] +++j;
printf("%d, %d",j,k);
Run Code Online (Sandbox Code Playgroud)

这不会发出任何警告,但输出有点令人困惑。输出- 1,15 为什么 j 在第二种情况下没有增加?

c

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

c语言中的隐式int

我正在使用orwell dev c ++ IDE.我知道在旧的C89标准和预标准中,当函数定义中没有明确指定函数的返回类型时,C++支持缺省为int规则.但它已在C++中被禁止.但最近我写了以下简单的C程序,它工作正常.

#include <stdio.h>
void fun();
int main(void)
{
    int a=9;
    printf("%d",a);
    printf("%d",a);
    fun();
    return 0;
}
a=1;
void fun()
{
    printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)

默认的int规则是否也适用于变量?我的编译器向我显示以下警告.

[Warning] data definition has no type or storage class [enabled by default] 

[Warning] type defaults to 'int' in declaration of 'a' [enabled by default]
Run Code Online (Sandbox Code Playgroud)

为什么C99标准仍允许默认为int?它在C++中编译失败.如果我错了,请纠正我?此C程序也适用于ideone.com等在线编译器

c variables

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

在C预处理器中为自己定义一些东西

我遇到了这些问题:

#define bool  bool
#define false false
#define true  true
Run Code Online (Sandbox Code Playgroud)

我不认为我需要说的不仅仅是"wtf?",而是要明确:为自己定义一些东西有什么意义?

这些行来自clang stdbool.h

c self-reference c-preprocessor

2
推荐指数
2
解决办法
396
查看次数

在C编程中实现堆栈的推送方法

开发商!我在C中有一个堆栈的push()方法的问题!

我在C中实现了自己的push()方法!但我无法理解结果!

我的堆栈代码如下

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 10

int top = -1;
int array[MAX_SIZE];

void init(){
    top = -1;
}

void push(int array[], int data){

    if(top > MAX_SIZE-1)
        fprintf(stderr, "invalid top %d\n", top+1);
    else{
        array[++top] = data; // top == 9, ++top == 10
        printf("top: %d data: %d\n", top+1, array[top]); // top == 11, top == 10
    }
}
void pop(int array[]){

}
void peek(int array[]){

}

int main() {
   int data = 1;

   for (int i=0; i<MAX_SIZE; …
Run Code Online (Sandbox Code Playgroud)

c stack data-structures

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