我的代碼可以運行可是結果為什么不對
#include<iostream>
#include<stdlib.h>
using namespace std;
???
int getMaxorMin(int *arr,int count,bool ismax)
{
int temp;
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp<arr[i])
{
temp=arr[i];
}
}
return temp;
}
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp>arr[i])
{
temp=arr[i];
}
}
return temp;
}
}
int main(void)
{
int ismax;
cin>>ismax;
int arr1[4]={1,5,7,2};
cout<<getMaxorMin(arr1,4,ismax)<<endl;
system("pause");
return 0;
}
2019-07-17
為什么你有8個{卻只有7個 };注意下return的位置和一開始定義的在一個大括號里面
2019-07-11
①你在getMaxorMin里用了兩個if(isMax)。if(isMax)的意思是如果isMax結果為true則怎么怎么樣。現在如果傳入isMax=true就會有兩個入口,如果isMax=false就會沒有入口。
建議:
if(isMax)
{
...
}
else
{
...
}
②你在getMaxorMin里需要的是布爾型的isMax,在main函數里傳入的是整型的isMax,不匹配。(不知道這個會不會有問題,還沒有試過)
③你在main函數中聲明的isMax沒有賦初值,可能導致編譯時隨機賦值。
在下才疏學淺,說的有什么不對的還請見諒。
2019-04-14
#include<iostream>
#include<stdlib.h>
using namespace std;
???
int getMaxorMin(int *arr,int count,bool ismax)
{
int temp;
if(ismax)
{
temp=arr[0];
for(int i=1;i<count;i++)
{
if(temp<arr[i])
{
temp=arr[i];
}
else
{
?if(temp>arr[i])
?{
??temp=arr[i];
?}
}
if(temp>arr[i])
{
temp=arr[i];
}
}
return temp;
}
}
int main(void)
{
int arr1[4]={1,5,7,2};
bool ismax =false;
cin>>ismax;
?
cout<<getMaxorMin(arr1,4,ismax)<<endl;
system("pause");
return 0;
}
改完后的代碼,請參考