幻舞清风 2022-09-27 21:12 采纳率: 85.7%
浏览 17
已结题

顺序表的设计与应用。

//文件名"学生.h"
#include<stdio.h>
typedef struct Student
{
long number;
char name[10];
char sex[4];
int age;
//float grade;
}StudentType;

typedef StudentType DataType;

#define MaxSize 100

typedef struct
{
DataType List[MaxSize];
int size;
}SeqList;

void ListInitiate(SeqList *L)
{
L->size=0;
}

int ListLength(SeqList L)
{
return L.size;
}

int ListInsert(SeqList *L,int i,DataType x)
{
int j;
if(L->size>=MaxSize)
{
printf("顺序表已满无法插入!\n");
return 0;
}
else if (i<0||i>L->size)
{
printf("参数i不合法!\n");
return 0;
}
else
{
for(j=L->size;j>i;j--)
{
L->List[j]=L->List[j-1];
}

    L->List[i]=x;//插入x 
    L->size++;//元素个数加一 
    return 1;
}

}

int ListGet(SeqList L,int i,DataType *x){
if(i<0||i>L.size-1)
{
printf("参数i不合法!\n");
return 0;
}
else
{
*x=L.List[i];
return 1;
}
}

int ListDelete(SeqList *L,int i,DataType *x){
int j;
if(L->size<=0){
printf("顺序表已空无元素可删!\n");
return 0;
}
else if(i<0||i>L->size-1){
printf("参数i不合法");
return 0;
}
else{
*x=L->List[i];
for(j=i+1;j<=L->size-1;j++)
L->List[j-1]=L->List[j];
L->size--;
return 1;
}
}

#include<stdio.h>
#include "学生.h"

int main(void)
{
    SeqList myList;
    int i;
    //定义结构体类型数据变量
    StudentType x[3]={{2000001,"张三","男",20},
                     {2000002,"李四","男",21},
                     {2000003,"王五","女",22}};
    StudentType s;
    
    ListInitiate(&myList);//调用初始化函数
    //插入函数调用
    /*ListInsert(&myList,0,x[0]);
    ListInsert(&myList,1,x[1]);
    ListInsert(&myList,2,x[2]);*/
    for(i=0;i<3;i++)
    {
        if((ListInsert(&myList,i,x[1]))==0)
        {
            printf("错误!");
            return 0;
        }
    }
    
    for(i=0;i<ListLength(myList);i++)
    {
        if(ListGet(myList,i,&s)==0)
        {
            printf("错误!");
            return 1;
        }
        else
        //显示数据
        printf("%d  %s  %s  %d \n",s.number,s.name,s.sex,s.age); 
    }
    //ListSort(myList);
    
}

img

请在上述代码中修改使其实现
2000001,"张三","男",20
2000002,"李四","男",21
2000003,"王五","女",22
的顺序表。

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-27 21:17
    关注

    if((ListInsert(&myList,i,x[1]))==0)
    改成
    if((ListInsert(&myList,i,x[i]))==0)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月28日
  • 已采纳回答 9月28日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器