代码
#include<stdio.h>
#include<stdlib.h>
#define Max 4
//创建一个顺序表,将其中的最大值删除(可能有多个)
typedef struct node{
int data[Max];
int lenght;
}Node;
void swap(int *a, int *b)
{
int *t=a;
a=b;
b=t;
}
void InitNode(Node &L) //初始化
{
L.lenght =0;
printf("请输入元素:");
int i;
for(i=0; i < Max; i++){
scanf("%d", &L.data [i]);
L.lenght ++;
}
}
int DisNode(Node &L) //打印
{
if(L.lenght <= 0) return 0;
int i=0;
while(i < L.lenght ){
printf("%d ",L.data [i++]);
}
return 0;
}
int DeMax(Node &L)
{
int i=0;
int cnt=0;
if(i >= L.lenght ) return 0;
int max=L.data [0];
while(i < L.lenght ){ //遍历找到最大值
if(L.data [i] >= max)
{
max=L.data [i];
}
i++;
}
i=0;
int j=0;
while(i < L.lenght ){ //遍历找到最大值
if(L.data [i] == max){
for(j = i+1;j <= L.lenght-1 ;j++){ //循环前移
L.data [j-1]=L.data [j];
}
L.lenght --; //总长度减一
}
else i++;
}
if(L.lenght == 0) return 0; //如果全删除了,返回0
else return 1;
return 1;
}
int main()
{
Node L;
InitNode(L);
DeMax(L);
DisNode(L);
return 0;
}