- 论坛徽章:
- 0
|
我改了一下,不过没有作错误chuli,比如说输入整数等,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
#define INCREATSIZE 10
typedef struct { char name[20];/*定义一个结构体*/
int worknumber;}work,*worker;
typedef struct { /*定义一个结构体*/
worker *Elem;
int length;
int listsize;}*sqlist;
//typedef sqlist_t* sqlist;
void enterdata(sqlist L){ /*要求输入姓名和号码,输入函数*/
int i;
printf("please enter the worker's total:\n");
scanf("%d",&(L->length));
for(i=1;i<=L->length;i++){
printf("the %d worker's name :",i);
scanf("%s",((L->Elem)[i])->name);
printf("\n");
printf("please enter the %d worker's worknumber:",i);
scanf("%d",&(((L->Elem)[i])->worknumber));
printf("\n");
}
}
void creatlist(sqlist L){ /*建立顺序表,分配空间*/
L->Elem=(worker*)malloc(MAXSIZE*sizeof(worker));
int i = 0;
for(i = 0; i < MAXSIZE; i++){
(L->Elem)[i] = (worker)malloc(MAXSIZE*sizeof(work));
}
if(!L->Elem) exit(ERROR);
L->length=0;
L->listsize=MAXSIZE;
return;}
void outputlist(sqlist L){ /*输出刚才输入的信息*/
int i;
printf("the worker' data is:\n");
for(i=1;i<=L->length;i++){
printf("%s ",((L->Elem)[i])->name);
printf("%d", ((L->Elem)[i])->worknumber);
printf("\n");
}
}
int main(){ /*主函数*/
sqlist L1;
creatlist(L1);
enterdata(L1);
outputlist(L1);
//insertworker(L1);
//outputlist(L1);
return 0;
}
执行:
please enter the worker's total:
2
the 1 worker's name :sdfasdfhd
please enter the 1 worker's worknumber:3
the 2 worker's name :ds
please enter the 2 worker's worknumber:3
the worker' data is:
sdfasdfhd 3
ds 3 |
|