我正在做关于Ackermann功能的书籍练习.
我有一个问题.如果我声明结果但不初始化它,编译器会抱怨"变量结果可能没有初始化".
int result;
Run Code Online (Sandbox Code Playgroud)
当我将其设置为默认值为0时,它不会抱怨.
int result = 0;
Run Code Online (Sandbox Code Playgroud)
我认为当一个声明一个类型为int的变量时,它会自动默认为0.
这是完整的代码:
public class Ackermann {
public static int ack(int m, int n) {
int result = 0;
//int result;
if (m == 0)
result = n + 1;
else if(m > 0 && n == 0)
result = ack(m-1, 1);
else if(m > 0 && n > 0)
result = ack(m-1, ack(m, n-1));
return result;
}
public static void main(String[] args) {
System.out.println(ack(3, 3));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在学习参考参数,并遇到以下问题:
这有什么区别:
void B(int* worthRef) {
*worthRef += 1;
}
int main() {
int netWorth = 55;
B(&netWorth);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和这个:
void B(int &worthRef) {
worthRef += 1;
}
int main() {
int netWorth = 55;
B(netWorth);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 这个查询有什么问题:
WITH volcan AS (SELECT DISTINCT v.numturista
FROM viaje v, sitio s
WHERE v.numsitio = s.numsitio
AND s.tipo = 'Volcan'),
desierto AS (SELECT DISTINCT v.numturista
FROM viaje v, sitio s
WHERE v.numsitio = s.numsitio
AND s.tipo = 'Desierto')
SELECT DISTINCT pais
FROM turista
WHERE numturista IN (volcan INTERSECT desierto);
Run Code Online (Sandbox Code Playgroud)
它不应该等同于以下(因为WITH创建命名的SELECT查询):
SELECT DISTINCT pais
FROM turista
WHERE numturista IN (
(SELECT DISTINCT v.numturista
FROM viaje v, sitio s
WHERE v.numsitio = s.numsitio
AND s.tipo = 'Volcan')
INTERSECT
(SELECT DISTINCT v.numturista
FROM …Run Code Online (Sandbox Code Playgroud) sql postgresql common-table-expression intersect relational-division
我正在构建一个运行生产者(工作者)的小型GUI应用程序,GUI按需消耗输出并绘制它(使用pyqtgraph).
由于生产者是一个阻塞函数(运行需要一段时间),我(据说)将它移动到自己的线程.
从生产者调用QThread.currentThreadId()时,它输出与主GUI线程相同的编号.因此,首先执行worker,然后执行所有绘图函数调用(因为它们在同一线程的事件队列中排队).我怎样才能解决这个问题?
示例运行部分:
gui thread id 140665453623104
worker thread id: 140665453623104
Run Code Online (Sandbox Code Playgroud)
这是我的完整代码:
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import pyqtSignal
import pyqtgraph as pg
import numpy as np
from functools import partial
from Queue import Queue
import math
import sys
import time
class Worker(QtCore.QObject):
termino = pyqtSignal()
def __init__(self, q=None, parent=None):
super(Worker, self).__init__(parent)
self.q = q
def run(self, m=30000):
print('worker thread id: {}'.format(QtCore.QThread.currentThreadId()))
for x in xrange(m):
#y = math.sin(x)
y = x**2
time.sleep(0.001) # Weird, plotting stops …Run Code Online (Sandbox Code Playgroud) 如何将这些 BMP 文件转换为旧格式?
我试过:
mogrify -format bmp -define bmp:format=bmp4 *.bmp
Run Code Online (Sandbox Code Playgroud)
但它没有用。
imagemagick bitmap python-imaging-library imagemagick-convert scikit-image
bitmap ×1
c++ ×1
imagemagick ×1
intersect ×1
java ×1
postgresql ×1
pyqt ×1
pyqt4 ×1
python ×1
qt ×1
scikit-image ×1
sql ×1