c++(输出一维数组中最小数,结果不是我想要的)

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:42:38
#include <iostream.h>
int findmax(int a[],int n)
{
unsigned int b,result;
for(b=0;b<n-1;b++)
{
result=a[9];
if(a[b]<result)
result=a[b];
}
return(result);
}
void main(void)
{
int t[10]={3,8,4,6,20,-1,3,-20,44,2};
cout<<"min number is "<<findmax(t,10);
}

求一维数租中最小的值不是想你那样子写的!而且就算在你的程序的基础上面把他该成了能求最小值,如果我要求的一维数组里面有20个元素!那你不是又要在 程序里面改动!所以看下我下面的程序!
#include <iostream> //你那个已经是以前的了,现在都用这个。
using namespace std;//这是命名空间。
int findmax(int a[],int n)
{
int iTemp=0;
for (int i=0;i<n-1;i++)
{
if (a[i]<a[i+1])
{
iTemp=a[i];
a[i]=a[i+1];
a[i+1]=iTemp;
}
}
return a[n-1];
}
void main(void)
{
int t[10]={3,8,4,6,20,-1,3,-20,44,2};
cout<<"min number is "<<findmax(t,10);
}

result=a[9]; 拿到for前面去,否则result永远是a[9]
另外result定义为无符号数,而数组中有有符号数,必然出现问题

提醒 love_shuo521,看到别人的答案再改自己的,又不说一声,貌似缺少点XX

include <iostream.h>
int findmax(int a[],int n)
{
unsigned int b,result;
result=a[9];
for(b=0;b<n-1;b++)
{
if(a[b]<result)
result=a[b];
}
return(result);
}
void main(void)
{
int t[10]