[英]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.