求数组a中最大值和最小值所在的位置的c语言程序

如题所述

第1个回答  2011-04-06
void main()

{

int a[4][4];

int i,j;

int max,min,rmax,rmin,cmax,cmin;

//给二维数组赋值

for( i=0;i<4;i++)

for( j=0;j<4;j++)

cin>>a[i][j];

//输出二维数组

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

cout<<setw(4)<<a[i][j];

cout<<endl;

}

cout<<endl;

//求二维数组中最大数、最小数及其行号和列号

max=min=a[0][0];

rmax=rmin=cmax=cmin=0;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

{

if(a[i][j]>max)max=a[i][j],rmax=i,cmax=j;

if(a[i][j]<min){min=a[i][j];rmin=i;cmin=j;}

}

cout<<"max="<<max<<setw(4)<<"最大值所在行列号:("<<rmax+1<<','<<cmax+1<<")\n";

cout<<"min="<<min<<setw(4)<<"最小值所在行列号:("<<rmin+1<<','<<cmin+1<<")\n";

cout<<endl;
第2个回答  2011-04-06
int a[N];
struct num
{
int value;
int index;
};
num Max,Min;
........
Max.value=a[0];
Max.index=0;
Min.value=a[0];
Min.value=0;
for(int i=0;i<N;i++)
{
if((a[i]-Max.value)>0)
{
Max.value=a[i];
Max.index=i;
continue;
}
if((a[i]-Max.value)<0)
{
Min.value=a[i];
Min.index=i;
}
}
.......
第3个回答  2011-04-06
struct Data{
int maxid;
int minid;
}

void getData(int *a,int len,struct Data * data)
{
int i=0,max=0,min=0;
while(len-->0)
{
if(a[i]>max) max=i;
if(a[i]<min) min=i;
i++;
}
data->maxid=max;
data->minid=min;
}本回答被提问者和网友采纳
相似回答