求教一个简单的顺序表实现

weixin_41017036 2017-11-13 11:16:53
目的就是初始化一个顺序表,存储六个学生的个人信息(学号姓名性别年龄),然后根据学号进行查找
程序没报错,然而运行结果如图所示
附上代码


#include"stdafx.h"
#include"stdio.h"
#include"stdlib.h"
#define listinitsize 100
#define listincrement 10
#define OVERFLOW -1
struct student
{
int no[6];
char name[6];
char sex[6];
int age[6];
};
struct sqlist
{
student*elem;
int length;
int listsize;
};

void initlist(sqlist&l)
{ l.elem=(student*)malloc(listinitsize*sizeof(student));
if(!l.elem)exit(OVERFLOW);
l.length=1;
l.listsize=listinitsize;
}
void inputlist(sqlist&l,int n)
{
int a;
for(a=0;a<n;a++);
{
printf("请输入学生学号");
scanf("%d",l.elem[a].no);
printf("请输入学生姓名");
scanf("%s",l.elem[a].name);
printf("请输入学生性别");
scanf("%s",l.elem[a].sex);
printf("请输入学生年龄");
scanf("%d",l.elem[a].age);
l.length++;

}
}
void sqlistsearch(sqlist&l)
{
int a=0;
int searchno[10];
printf("请输入要查找的学号");
scanf("%s",searchno);
for(a=0;a<l.length;a++)
{
if (searchno==l.elem[a].no)
printf("%d","%s","%s","%d",l.elem[a].no,l.elem[a].name,l.elem[a].sex,l.elem[a].age);
break;
if(a=l.length)
printf("查无此人");
}
}
void main()
{
sqlist L;
initlist(L);
inputlist(L,6);
sqlistsearch(L);
}
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-11-14
  • 打赏
  • 举报
回复
//#include"stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define listinitsize 100
#define listincrement 10
#define OVERFLOW -1

struct student
{
    char no[12];    /*问题1: 定义成字符数组*/
    char name[16];
    char sex[12];
    int age;   /* 问题2: 定义成变量*/
};
struct sqlist
{
    student*elem;
    int length;
    int listsize;
};

void initlist(sqlist &l)
{
    l.elem=(student*)malloc(listinitsize*sizeof(student));
    if(!l.elem)
        exit(OVERFLOW);
    l.length = 1;
    l.listsize = listinitsize;
}
void inputlist(sqlist &l, int n)
{
    int i;
    for(i=0;i<n;i++)    /*问题3: 去掉分号*/
    {
        printf("请输入学生学号");
        scanf("%s", l.elem[i].no);
        printf("请输入学生姓名");
        scanf("%s", l.elem[i].name);
        printf("请输入学生性别");
        scanf("%s", l.elem[i].sex);
        printf("请输入学生年龄");
        scanf("%d", &l.elem[i].age);
        l.length++;

    }
}
void sqlistsearch(sqlist&l)
{
    int i;
    char searchno[10];
    printf("请输入要查找的学号");
    scanf("%s",searchno);
    for(i=0;i < l.length;i++)
    {
        if (strcmp(searchno, l.elem[i].no) == 0) {
            printf("%s, %s, %s, %d\n",l.elem[i].no,l.elem[i].name,l.elem[i].sex,l.elem[i].age);
            break;
        }
    }
    if(i >=l.length)
        printf("查无此人");
}
int main()
{
    sqlist L;
    initlist(L);
    inputlist(L, 6);
    sqlistsearch(L);

    return 0;
}
参考一下吧 问题挺多,建议基础知识还是学好了。
weixin_41017036 2017-11-13
  • 打赏
  • 举报
回复
补上运行结果
大米粥哥哥 2017-11-13
  • 打赏
  • 举报
回复
if a==l.length 等好问题(O_O)?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧