求解,n行二列数组
求解,n行2列数组
如何比较n*2数组中,每一行间的元素大小。
要求输出元素值最小的一行,和与改行无法比较的一行元素。
比如:A[4][2]={{97,88},{43,43},{10,97},{21,20}};
(97,88)>(43,43)>(21,20),(21,20)与(10,97)无法比较大小;
输出{10,97},{21,20};
------解决思路----------------------
不懂你这题目什么意思
------解决思路----------------------
首先要确定使用哪一种方式比较吧,前面的数值大还是小,确定之后就可以比较,然后把不符合标准的全部输出
------解决思路----------------------
如何比较n*2数组中,每一行间的元素大小。
要求输出元素值最小的一行,和与改行无法比较的一行元素。
比如:A[4][2]={{97,88},{43,43},{10,97},{21,20}};
(97,88)>(43,43)>(21,20),(21,20)与(10,97)无法比较大小;
输出{10,97},{21,20};
------解决思路----------------------
不懂你这题目什么意思
------解决思路----------------------
首先要确定使用哪一种方式比较吧,前面的数值大还是小,确定之后就可以比较,然后把不符合标准的全部输出
------解决思路----------------------
#include<stdio.h>
main()
{
int a[7][2]={{10,97},{33,88},{43,43},{21,20},{33,87},{33,23},{1,32}};
int i,j;
int temp[2],t;
int n=sizeof(a)/sizeof(a[0]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i][0]<a[j][0])
{
temp[0]=a[j][0];
a[j][0]=a[i][0];
a[i][0]=temp[0];
temp[1]=a[j][1];
a[j][1]=a[i][1];
a[i][1]=temp[1];
}
t=a[0][1];
for(i=1;i<n;i++)
{
if(a[i][1]<=t)
{
t=a[i][1];
j=i;
}
}
printf("{%d,%d}",a[j][0],a[j][1]);
for(i=0;i<n;i++)
if(a[i][0]>a[j][0]&&a[i][1]<a[j][1]
------解决思路----------------------
a[i][0]<a[j][0]&&a[i][1]>a[j][1] )
printf("{%d,%d}",a[i][0],a[i][1]);
printf("第一维排序后的为:\n");
for(i=0;i<n;i++)
printf("{%d,%d}",a[i][0],a[i][1]);
}