无法转换' int *'到' int **'争论' 1'?

时间:2016-07-11 00:10:09

标签: c++ pointers

我正在尝试编写一个打印数组插入元素的多维数据集的程序,然后打印可被2整除的元素之和,而不能被3整除。

<?php
    // Establish connection to the database, pass the query and get the result
    $connection = connect("limited");
    $query = "SELECT `Last_Login` FROM `users`";
    $result = mysqli_query($connection, $query);

    // Initiate variables
    $now = date_parse(date("Y-m-d H:i:s"));
    $last_login = ["Last_Login" => array()];
    $difference = ["Days" => array()];
    $entries = mysqli_num_rows($result);

    // For each entry in the database insert the date in its respective position in the arrays
    if ($entries) {
        while ($data = mysqli_fetch_assoc($result)) {
            array_push($last_login["Last_Login"], date_parse($data["Last_Login"]));
        }
    }

    // Calculate the difference between the present moment and the last login date
    for ($i = 0; $i < count($last_login["Last_Login"]); $i++) {
        // If the present year is bissextile convert months to seconds as 29 days each
        if ($now["year"] % 4 === 0) {
            if ($last_login["Last_Login"][$i]["month"] === 2) {
                $present = $now["month"] * 2505600 + $now["day"] * 86400 + $now["hour"] * 3600 + $now["minute"] * 60 + $now["second"];
                $past = $last_login["Last_Login"][$i]["month"] * 2505600 + $last_login["Last_Login"][$i]["day"] * 86400 + $last_login["Last_Login"][$i]["hour"] * 3600 + $last_login["Last_Login"][$i]["minute"] * 60 + $last_login["Last_Login"][$i]["second"];
                $difference["Days"][$i] = ($present - $past) / 86400;
            }
        }
        // If the present year is not bissextile convert months to seconds as 28 days each
        else {
            if ($last_login["Last_Login"][$i]["month"] === 2) {
                $present = $now["month"] * 2419200 + $now["day"] * 86400 + $now["hour"] * 3600 + $now["minute"] * 60 + $now["second"];
                $past = $last_login["Last_Login"][$i]["month"] * 2419200 + $last_login["Last_Login"][$i]["day"] * 86400 + $last_login["Last_Login"][$i]["hour"] * 3600 + $last_login["Last_Login"][$i]["minute"] * 60 + $last_login["Last_Login"][$i]["second"];
                $difference["Days"][$i] = ($present - $past) / 86400;
            }
        }

        // Convert months to seconds as 31 days each
        if (($last_login["Last_Login"][$i]["month"] >= 1 && $last_login["Last_Login"][$i]["month"] <= 7 && $last_login["Last_Login"][$i]["month"] % 2 === 1) || ($last_login["Last_Login"][$i]["month"] >= 8 && $last_login["Last_Login"][$i]["month"] <= 12 && $last_login["Last_Login"][$i]["month"] % 2 === 0)) {
            $present = $now["month"] * 2678400 + $now["day"] * 86400 + $now["hour"] * 3600 + $now["minute"] * 60 + $now["second"];
            $past = $last_login["Last_Login"][$i]["month"] * 2678400 + $last_login["Last_Login"][$i]["day"] * 86400 + $last_login["Last_Login"][$i]["hour"] * 3600 + $last_login["Last_Login"][$i]["minute"] * 60 + $last_login["Last_Login"][$i]["second"];
            $difference["Days"][$i] = ($present - $past) / 86400;
        }
        // Convert months to seconds as 30 days each
        elseif ($last_login["Last_Login"][$i]["month"] === 4 || $last_login["Last_Login"][$i]["month"] === 6 || $last_login["Last_Login"][$i]["month"] === 9 || $last_login["Last_Login"][$i]["month"] === 11) {
            $present = $now["month"] * 2592000 + $now["day"] * 86400 + $now["hour"] * 3600 + $now["minute"] * 60 + $now["second"];
            $past = $last_login["Last_Login"][$i]["month"] * 2592000 + $last_login["Last_Login"][$i]["day"] * 86400 + $last_login["Last_Login"][$i]["hour"] * 3600 + $last_login["Last_Login"][$i]["minute"] * 60 + $last_login["Last_Login"][$i]["second"];
            $difference["Days"][$i] = ($present - $past) / 86400;
        }
    }
?>

一切都很好,直到这行代码(标记为&#34; &lt;&lt; = here &#34;):&#34; unesi(niz,n);&# 34;我做错了什么?

2 个答案:

答案 0 :(得分:2)

而不是:

void unesi(int* niz[],int n)

尝试:

void unesi(int niz[],int n)

niz[]衰减到指针,所以不需要指向指针

其他功能相同。最后请注意,只需使用cin>> *niz[i];

而不是cin>> niz[i];

答案 1 :(得分:1)

在C ++中,

int* nix[]

实际上已翻译成

int** nix

在编译时。要解决此问题,您可以使用

int* nix
int nix[]

同样在函数体中,您可能需要更改

*nix[i]

nix[i]