簡體   English   中英

執行有轉換錯誤的過程

[英]Executing a procedure with conversion error

#include<iostream>
using namespace std;

void MinMax(int tab[],int* min, int& max)
{
    int size=0;
    for(int i=0; i<4095; i++)
    {
        if(tab[i]==-1) break;
        size++;
    }
    size=(int)size;
    for(int passes=0; passes<size; passes++)
    {
        if(tab[passes]<tab[passes+1])
        {
            swap(tab[passes],tab[passes+1]);
        };
    }
    min=tab[size];
    cout<<min<<" ";
    for(int passes=0; passes<size; passes++)
    {
        if(tab[passes]>tab[passes+1])
        {
            swap(tab[passes],tab[passes+1]);
        };
    }
    max=tab[size];
    cout<<max<<" ";

}
int main()
{
    int z1[]= {10,2,5,7,4,-1};
    int min, max;
    MinMax(z1,min,max);
    for(int i=0; i<7; i++)
    {
        cout<<z1[i]<<" ";
    }
}

我需要在主函數中的 z1 中寫入一些值,然后執行 MinMax。 它應該從數組中找到最小值和最大值。 第一個問題是當我嘗試編譯它時,將 int 轉換為 int* 時出錯,我無法將 tab[size] 分配給 min。 執行 MinMax 時我也應該使用 2 個整數,但它不起作用。

void MinMax(int tab[],int* min, int& max)
//                       ^

這似乎是一個錯字。

考慮到你傳遞參數的方式,以及你在MinMax使用它的方式,我懷疑你的意思是int& ,就像你對max

您得到的錯誤是因為您通過執行min=tab[size];為指針變量分配了一個整數min=tab[size]; 其中 min 是int * type 和 tab[size] 是int

為了更正此行為,您應該將 tab[size] 分配給 min 使用尊重運算符指向的值: *min = tab[size]

這應該糾正你的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM