69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define MAX 100
typedef float t;
typedef struct list{
int len;
t num[MAX];
} List;
int CreateList(List &lst,int n){
if(n>=MAX){
printf("EE!");
return 0;
}
lst.len=n;
return 1;
}
int Nixu(List &lst){
int i;
float t=0;
i=lst.len/2;
if(lst.len<2){
printf("EE");
return 0;
}
while(i+1){
t=lst.num[i];
lst.num[i]=lst.num[lst.len-1-i];
lst.num[lst.len-1-i]=t;
i--;
}
return 1;
}
int DELlist(List &lst,t x){
int i;
i=0;
if(x>=lst.len){
printf("EE");
return 0;
}
for(;i<lst.len;i++){
if(x==lst.num[i]){
i++;
while(i!=lst.len){
lst.num[i-1]=lst.num[i];
i++;
}
--lst.len;
return 1;
}
}
return 1;
}
int PrintLst(List Lst){
int i;
i=0;
while(Lst.len--){
printf("%f\n",Lst.num[i++]);
}
printf("\n");
return 1;
}
int main()
{
List lst;
int i;
float j=1.2;
CreateList(lst,5);
for(i=0;i<5;i++){
j+=0.5;
lst.num[i]=j;
}
PrintLst(lst);
Nixu(lst);
PrintLst(lst);
DELlist(lst,3.2);
PrintLst(lst);
return 0;
}
enum
{
TYPE_INT, TYPE_FLOAT
};
typedef struct list{
int type;
int len;
t num[MAX];
} List;
int PrintIntLst(List Lst){
int i;
i=0;
while(Lst.len--){
printf("%d\n",Lst.num[i++]);
}
printf("\n");
return 1;
}
int PrintFloatLst(List Lst){
int i;
i=0;
while(Lst.len--){
printf("%f\n",Lst.num[i++]);
}
printf("\n");
return 1;
}
int PrintLst(List Lst){
switch(Lst.type)
{
case TYPE_FLOAT:
PrintFloatLst(Lst);
break;
case TYPE_INT:
PrintIntLst(Lst);
break;
....
}
...
int main()
{
List lst;
lst.type = TYPE_FLOAT;
...
PrintLst(lst);
...
}