我正在制作合并排序代码,但它没有排序.你看到它有什么问题吗?
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中嵌套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
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.
callocC 中的函数用于分配归零内存,该内存至少可以容纳指定大小的请求数量的元素。在实践中,大多数内存分配器可能会分配更大的块以提高效率并最小化碎片。在此类系统中分配的实际可用块大小通常可通过特殊函数发现,即_msize或malloc_usable_size。
将calloc确保整个可用块归零,还是仅将分配的请求计数 * 大小部分归零?
如果我正在使用特定功能而不检查其返回值,我希望编译器发出错误。
我在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)
这可能吗?
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) 以下是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 在第二种情况下没有增加?
我正在使用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等在线编译器
我遇到了这些问题:
#define bool bool
#define false false
#define true true
Run Code Online (Sandbox Code Playgroud)
我不认为我需要说的不仅仅是"wtf?",而是要明确:为自己定义一些东西有什么意义?
这些行来自clang stdbool.h
开发商!我在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)