一道C的综合体错误百出,无能为力,求高手指点...
实验内容编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。
实验步骤
1.写程序显示如下菜单
1. 插入 (插入一个数据)
2. 删除 (删除一个数据)
3. 排序 (排序)
4. 输出 (输出表中所数据)
0. 退出 (退出程序)
2. 用输入函数输入菜单选择的数字(0-4)对其他输入要提示错误信息流程控制结构如图1所示。
3.顺序表的数据类型自选,可以先使用基本类型,在此基础上修改使用结构体类型。
4.每个功能模块要求用函数实现。
5.在菜单中增加“写入文件”和“读取文件”选项,能将顺序表中的数据写入文件和从文件读取数据。
6.(选做)使用链表来实现。
我的程序:
#include <stdio.h>
#include <stdlib.h>
#define N 100;
void Insert(char a[N]);
void Delete(char a[N]);
void Order (char a[N]);
int main(void)
{
char a[N] = {0};
printf("1. 2åèë\t\t(2åèëò»¸öêy¾Y)\n") ;
printf("2. é¾3y\t\t(é¾3yò»¸öêy¾Y)\n") ;
printf("3. ÅÅDò\t\t(ÅÅDò)\n") ;
printf("4. êä3ö\t\t(êä3ö±íÖDËùóDêy¾Y)\n");
printf("0. íË3ö\t\t£¨íÆ3ö3ìDò£©\n") ;
putchar(10) ;
for(; ;)
{
printf("Please input the command: ");
scanf("%d", &command) ;
if(command == 0 || command == 1 || command == 2 || command == 3 || command == 4)
break;
else
printf("Error\n");
}
switch(command)
{
case 0: Exit ; break;
case 1: Insert(a); break;
case 2: Delete(a); break;
case 3£oOrder (a); break;
case 4: Output(a); break;
}
return 0;
}
void Insert(char a[N])
{
int pla ;
printf("Input the place: ") ;
scanf("%d", &pla) ;
printf("Input the information: ");
scanf("%c", (a + pla)) ;
}
void Delete(char a[N])
{
int pla ;
printf("Input the place: ");
scanf("%d", &pla) ;
a[pla] = 0 ;
}
void Order(char a[N])
{
int i, j;
char tem;
for(i = N; i > 0; i--)
{
for(j = 0; j < (N + 1); j++)
{
if(strcmp(&a[i - 1 - j], &a[i - 2 - j]) < 0)
{
tem = a[i - 1 - j];
a[i - 1 - j] = a[i - 2 - j];
a[i - 2 - j] = tem ;
}
}
}
}
void Output(char a[N])
{
int i;
for(i = 0; i < N; i++)
{
printf("%c\n", a[i]);
}
}
void Exit(void)
{
exit(0);
}