输入要求 输出要求 代码运行结果示例
完整代码:
#include<stdio.h>
#include<malloc.h>
#define N 10
typedef struct {
char id[N];
char name[N];
float price;
}Book;
typedef struct{
Book *elem;
int length;
}SqList;
void InitSqList(SqList *L){
L->elem=(Book*)malloc(sizeof(Book)*N);
L->length=0;
}
void CreateSqList(SqList *L,int n){
int i=0;
for(;i<n;i++){
printf("书号,书名,书价:");
scanf("%s %s %f",&L->elem[i].id,&L->elem[i].name,&L->elem[i].price);
L->length++;
}
}
void PrintSqList(SqList *L){
int i=0;
for(;i<L->length;i++){
printf("第%d本书的书号,书名,书价:",i+1);
printf("%s %s %.2f\n",L->elem[i].id,L->elem[i].name,L->elem[i].price);
}
}
int InsertSqList(SqList *L,int i,Book b){
if(L->length==N)
return -1;
if(i<1 || i>L->length)
return -1;
int j;
if(i<=L->length && i>0){
for(j=L->length-1;j>=i-1;j--){
L->elem[j+1]=L->elem[j];
}
L->elem[i-1]=b;
L->length++;
}
}
int main(){
int n,i;
Book b;
SqList L;
InitSqList(&L);
printf("为顺序表添加的数据元素个数:");
scanf("%d",&n);
CreateSqList(&L,n);
PrintSqList(&L);
printf("向顺序表插入1本书籍信息,其插入位置为:");
scanf("%d",&i);
printf("输入要插入的书籍的书号,书名,书价:");
scanf("%s %s %f",&b.id,&b.name,&b.price);
InsertSqList(&L,i,b);
PrintSqList(&L);
return 0;
}
|