将顺序表A和B中的元素逐个比较,若得到A中的某个元素大于B中的同位置元素,则A大于B,反之B大于A,若对比到最后都相等,则A等于B,此外若A中所有元素都等于B,但A元素多于B,则A大于B,反之B大于A。
参考如下:
#include <stdio.h>
struct StList
{
int data[100];
int len;
};
int main()
{
int i;
struct StList a,b;
a.len = 0;
b.len = 0;
printf("input length of list a:");
scanf("%d",&a.len);
printf("input data of list a:\n");
for(i=0;i<a.len;i++)
scanf("%d",&a.data[i]);
printf("input length of list b:");
scanf("%d",&b.len);
printf("input data of list b:\n");
for(i=0;i<b.len;i++)
scanf("%d",&b.data[i]);
//compare
i = 0;
while(1)
{
if(i < a.len && i<b.len)
{
if(a.data[i] > b.data[i])
{
printf("a>b\n");
break;
}else if(a.data[i]<b.data[i])
{
printf("a<b\n");
break;
}else
i++;
}else if ( i== a.len && i <b.len)
{
printf("a<b\n");
break;
}else if(i <a.len && i == b.len)
{
printf("a>b\n");
break;
}else
{
printf("a=b\n");
break;
}
}
return 0;
}
这和字符串比较是一个逻辑啊,用for循环对位比较就行
#include <stdio.h>
#define MAXSIZE 100
typedef struct _sqlist
{
int data[MAXSIZE];
int len;
}sqlist;
int main()
{
sqlist A,B;
//略去顺序表数据输入
int i=0;
while(i<A.len && i<B.len)
{
if(A.data[i] != B.data[i])
break;
i++;
}
if(i==A.len && i==B.len)
printf("A等于B");
else if(i==B.len)
printf("A大于B");
else if(i==A.len)
printf("A小于B");
else if(A.data[i]>B.data[i])
printf("A大于B");
else
printf("A小于B");
//
return 0;
}