我一直在做一些项目Euler练习,以提高我对C++的知识.
我写了以下函数:
int a = 0,b = 0,c = 0;
for (a = 1; a <= SUMTOTAL; a++)
{
    for (b = a+1; b <= SUMTOTAL-a; b++)
    {
        c = SUMTOTAL-(a+b);
        if (c == sqrt(pow(a,2)+pow(b,2)) && b < c)
        {
            std::cout << "a: " << a << " b: " << b << " c: "<< c << std::endl;
            std::cout << a * b * c << std::endl;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
这计算在17毫秒.
但是,如果我改变了这条线
if (c == sqrt(pow(a,2)+pow(b,2)) && b < …Run Code Online (Sandbox Code Playgroud) 我正在尝试bash在名为"bind"的docker容器中执行
docker exec -it bind bash
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
rpc error: code = 2 desc = oci runtime error: exec failed: 
container_linux.go:247: starting container process caused "process_linux.go:110: 
decoding init error from pipe caused \"read parent: connection reset by peer\""
Run Code Online (Sandbox Code Playgroud)
日志中没有什么特别之处.重启docker或容器似乎没有任何效果.我还确保硬盘上有足够的空间.启动容器中的任何其他二进制文件会产生相同的错误.
版本信息:
docker --version:
Docker version 1.13.1, build 07f3374/1.13.1
Run Code Online (Sandbox Code Playgroud)
OS:
cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我正在尝试学习c,所以我尝试阅读一些源代码.
但我不知道这可能意味着什么:  
static const char*(*const functab[])(void)={
        ram,date
};
Run Code Online (Sandbox Code Playgroud)
第一部分,static const char*很好,因为它似乎是一个函数(有一个类型的参数void),static应该意味着它只在这个文件中可见,并且const char*应该意味着值不能改变,但地址可以改变.
但在这种情况下,在函数名后面的最后一部分之后没有意义,就像它的情况一样
static const char * date(void);
static const char * ram(void);
Run Code Online (Sandbox Code Playgroud)
而不是函数名称(*const functab[]),一个名为functab的const数组包含地址?
这是包含函数ram和date的某种包装函数吗?一些声明数组的替代方法?
我正在解决以下问题:
我想填充一个二维[365,2]数组.第一个值应该保留日期:从1月1日开始到12月31日结束.第二个值应该为每个日期保存相应的星座:
例如array[0, 0]持有101并array[0, 1]持有白羊座等等.
我写了一个函数:
public static void fill_array(string[,] year_zodiac, int days, string zodiac, string startdate, int starting_day) 
{
    //function to fill array with date and zodiac
    int startdate_int = 0;
    for (int i = starting_day; i <= days; i++)
    {
        year_zodiac[i, 0] = startdate;
        year_zodiac[i, 1] = zodiac;
        startdate_int = Int32.Parse(startdate);
        startdate_int++;
        startdate = startdate_int.ToString();
    }
Run Code Online (Sandbox Code Playgroud)
并称之为:
fill_array(main_array, 18, "Aries", "101", 0);
Run Code Online (Sandbox Code Playgroud)
每个十二生肖都必须这样做.我通过简单地fill_array两次打电话来规避月份休息问题(即我在十二月对白羊座的一部分称呼一次,在一月份对一部分白羊座就称之为一次).
这个解决方案有效,但对我来说似乎非常粗糙.
有人能给我一些更优雅的解决方案吗?
我已经安装了 log4j2 并设置了属性文件,但无法将 log4j2 输出调试信息发送到控制台。我怀疑我的配置有问题。
这是我的源代码:
package com.smt.trimble.poc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class NMEAReader {
      private static final String hostName = "192.168.0.2";
      private static final int portNumber = 5017;
      private static Socket nmeaSocket;
      private static final Logger logger = LogManager.getLogger(NMEAReader.class);
      public static void main(String[] args) {
        try {
        nmeaSocket = new Socket(hostName, portNumber);
        logger.debug("Creating socket");
        PrintWriter out = new PrintWriter(nmeaSocket.getOutputStream(), true);
        BufferedReader in = 
          new BufferedReader(new InputStreamReader(nmeaSocket.getInputStream()));
        String userInput;
        while (true) …Run Code Online (Sandbox Code Playgroud) 我有一个名为cia的表,有2列:
第1列("名称")具有世界上所有国家/地区的名称.第2列("区域")的大小以m ^ 2为单位.
我想找到最大和最小的国家.要找到我需要输入以下查询的那些:
SELECT Name, MAX(area) FROM cia
Run Code Online (Sandbox Code Playgroud)
我的其他疑问:
SELECT Name, MIN(area) FROM cia
Run Code Online (Sandbox Code Playgroud)
现在显然我能做到
SELECT MIN(area), MAX(area) FROM cia
Run Code Online (Sandbox Code Playgroud)
但是,我不会得到我的值的相应名称.是否有可能获得这样的输出
国家| Fläche
阿富汗| 列'区域'的最低值
中国| 列'区域'的最高值