#include "stdio.h" #include "stdlib.h" #include "string.h" #define SIZEMAX 30 typedef struct DATE{ //定义数组结构体 int cur; //数组的下表标 int date; }Date,*pdate; pdate create_array(void); void show_list_array(pdate phead,int len); int array_length(pdate phead); int get_array_value(pdate phead,int i); int main(void){ pdate phead; int i,len,e; phead=create_array(); printf("输入你要创建数组的长度(不超过30个):"); scanf("%d",&len); while(len>=SIZEMAX){ printf("你输入的数超过的30;\n请重输:"); scanf("%d",&len); } while(i<len){ phead[i].cur=++i; } phead[i].cur=0; for(i=0;i<len;i++){ printf("\n请输入第%d个数据:",i+1); scanf("%d",&(phead+i)->date); } show_list_array(phead,len); e=get_array_value(phead,2); printf("长度:%d",array_length(phead)); printf("取值%d",e); return 0; } pdate create_array(void){ pdate pbase=(pdate)malloc(sizeof(Date)*SIZEMAX); if(NULL==pbase){ printf("内存分配失败!\n"); exit(-1); } return pbase; } void show_list_array(pdate phead,int len){ int i; for(i=0;i<len;i++){ printf("%d\t",(phead+i)->date); } } int array_length(pdate phead){ int length=0; while((phead+length)->cur!=0){ length++; } return length; } int get_array_value(pdate phead,int i){ int k=(*phead).cur; int len=array_length(phead); int e; if(i>len){ return printf("ERROR;\n"); } while(k<i){ k=phead[k].cur; } e=phead[k].date; return e; }
链表---数组
最新推荐文章于 2022-12-04 19:15:50 发布