数据结构题
- 格式:docx
- 大小:15.44 KB
- 文档页数:5
{char name[10];
int num;
char sex[2];
int age;
}student[10];
int i;
for(i=0;i<10;i++)
{printf("请输入第%d个学生的信息:名字,学号,性别和年龄:\n",i+1);
scanf("%s %d %s %d",student[i].name,&student[i].num,student[i].sex,&student[i].age);
一、1)学生信息的显示,具体要求如下:
定义一个结构体描述学生信息(学号,姓名,性别,年龄,住址);
设计一个函数,用于显示单个学生信息,函数的参数为前面定义的结体类型;
设计一个主函数,在主函数中输入学生的信息,并调用前面定义的函数进行显示(学生人数不少于5人)。
#include "stdio.h"
int main()
scanf("%d,%d",&i,&x);
y=ListInsert_Sq(&ST,i,x);
for(i=0;i<ST.length;i++)
printf("%d",ST.elem[i]);
printf("请输入你要删除的元素的位置:");
fflush(stdin);
scanf("%d",&i);
ListDel_Sq(&ST,i);
return i;
else
return 0;
}
int ListInsert_Sq(SqList *L,int i,int e)
{
int j;
for(j=L->length;j>=i;j--)
L->elem[i]=e;
++L->length;
return 1;
}
void ListDel_Sq(SqList *L,int i)
int main()
{
int i;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
{
int t=a[i];
a[i]=a[9-i];
a[9-i]=t;
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
for(i=0;i<ST.length;i++)
printf("%d",ST.elem[i]);
return 0;
}
int LocateElem_Sq(SqList L,int e)
{
int i,*p;
i=1;
p=L.elem;
while(i<=L.length && *p++!=e)++i;
if(i<=L.length)
{
int j;
for(j=i;j<(L->length);j++)
{
L->elem[j-1]=L->elem[j];
}
L->length=L->length-1;
}
for(i=0;i<=ST.length-1;i++)
{
ST.elem[i]=rand()%100;
printf("%d",ST.elem[i]);
}
printf("请输入你要查找的数:");
scanf("%d",&x);
y=LocateElem_Sq(x);
printf("%d",y);
printf("请输入你要插入的位置及元素值:");
}
return 0;
}
三、1)建立一个线性顺序表,要求从键盘输入10个整数,并将该线性顺序表的元素从屏幕显示出来;
2)编写查找函数,在上面的线性顺序表中查找其中一个元素,如果找到,返回该元素在线性顺序表中的位置和该元素的值,否则提示无此元素。要求被查找元素从键盘输入。
3)编写插入和删除函数,由用户输入待插入元素及插入位置,将完成插入后的线性顺序表输出;由用户输入删除第几个元素,将完成删除后的线性顺序表输出。
int LiseInsert_Sq(SqList *L,int i);
void ListDel_Sq(SqList *L,int i);
printf("请输入顺序表的长度:");
scanf("%d",&ST.length);
ST.elem=(int*)malloc(sizeof(int)*ST.length);
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
typedef struct
{
int *elem;
int length;
}SqList;
int main()
{
int i,x,y;
SqList ST;
int LocateElem_Sq(SqList L,int i,int e);
}
二、2)输入若干个整数作为数组元素值,然后按输入时顺序的就地逆置排序,最后打印出逆置后的元素值。要求用指针和动态内存分配方法实现。例如输入:10 2 30 4 5,逆置后显示为:5 4 30 2 10。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
}
printf("十个学生的信息如下:\n");
for(i=0;i<10;i++)
{
printf("姓名:%s\t学号:%d\t性别:%s\t年龄:%d\n",student[i].name,student[i].num,student[i].sex,student[i].age);
}
return 0;