qq_21272255 2014-12-23 06:54 采纳率: 0%
浏览 1845

缺少一个简单插入排序的方法

#include
#include

typedef struct student *ST;
struct student
{
int stnu;
char stname[6];
char ststate[1];
ST next;
};
ST head=NULL;

int ShowNode()
{
int no;
ST t;
printf("输入学号:");
scanf("%d", &no);
for (t = head; t; t = t->next)
{
if (t->stnu == no)
{

printf("|学号|:%d |姓名|:%s |是否缺席|:%s \n", t->stnu, t->stname,t->ststate);
printf("是否缺席(缺席N,出席Y):");
scanf("%s", &t->ststate);
return 0;
}
}
printf("无此学生\n");
return 0;
}

void SelectNode()
{
ST t;
int sum=0,i=0;
for (t = head; t; t = t->next)
{
printf("学号:%d\n",t->stnu);
printf("姓名:%s\n",t->stname);
printf("出勤情况:%s\n",t->ststate);
sum=++i;
printf("☆---------------☆\n");
}
printf("共有%d人",sum);
}

int InsertNode()
{
ST t;
t = (ST)malloc(sizeof *t);
printf("输入学号:");
scanf("%d", &t->stnu);
printf("输入姓名:");
scanf("%s", &t->stname);
printf("输入Y(默认出席):");
scanf("%s",&t->ststate);
t->next = head;
head = t;
printf("添加成功");
return 0;
}

int DelNode()
{
ST x, y;
int no;
printf("输入学号:");
scanf("%d", &no);
for (x = y = head; x; y = x, x = x->next)
{
if (x->stnu == no)
{
if (x == y)
{
x = head = head->next;
y->next = NULL;
free(y);
printf("删除成功!\n");
return 0;
}
else
{
y->next = x->next;
x->next = NULL;
free(x);
printf("删除成功!\n");
return 0;
}
}
}
printf("无此学生\n");
return 0;
}

int main(void)
{
int i;
while(1)
{
printf("\n");
printf("☆---------------------------------☆\n");
printf("-----------☆ 点名开始 :1☆-----------\n"
"-----------☆报道学生添加:2☆-----------\n"
"-----------☆ 删除学生 :3☆-----------\n"
"-----------☆ 查看全体 :4☆-----------\n"
"-----------☆ 退 出 :5☆-----------\n");
printf("☆---------------------------------☆\n");
printf("请选择:");
scanf("%d", &i);
if (i==1)
{
ShowNode();
//system("cls");
}
else if(i==2)
{
InsertNode();
}
else if(i==3)
{
DelNode();
}
else if(i==4)
{
SelectNode();
}
else if(i==5)
{
break;
}
else
{
printf("输入错误!请重新输入!\n");
continue;
}
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2014-12-23 06:56
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配