| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:[求助]这个程序错在哪里啊?算法似乎没什么问题啊~~
只看楼主 加入收藏
gsbe1987
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-4-14
结帖率:100%
收藏
 问题点数:0 回复次数:3 
[求助]这个程序错在哪里啊?算法似乎没什么问题啊~~

#include <stdio.h>
#define DATATYPE int
#define MAXSIZE 100

typedef struct
{
DATATYPE DATAS[MAXSIZE];
int last;
}SQLIST;

void creat(SQLIST LST);//创建顺序表;
void ins(SQLIST LST);//插入操作;
void del(SQLIST LST);//删除操作;
void disp(SQLIST LST);//输出操作;
void init_sqlist(SQLIST LST)
{
LST.last=1;
return;
}//初始化顺序表;

main()
{
int i=0;
SQLIST LST[MAXSIZE];
int choose;//进行选择;
char ch;

do
{
printf("--选择操作--\n");
printf("1--创建顺序表\n");
printf("2--插入操作\n");
printf("3--删除操作\n");
printf("选择:");
scanf("%d",&choose);
switch(choose)
{
case 1:creat(SQLIST LST[i]);
disp(SQLIST LST[i]);
break;
case 2:ins(SQLIST LST[i]);
disp(SQLIST LST[i]);
break;
case 3:del(SQLIST LST[i]);
disp(SQLIST LST[i]);
break;
}
printf("是否还要继续操作?\n");
printf("是(Y)/否(N)\n");
ch=getchar();
}while(ch=='Y');
}

void creat(SQLIST LST)
{
int size=1;
char adjust;

printf("--创建顺序表--\n");
loop:
printf("输入第%个元素:",size);
scanf("%d",&LST.datas[size]);

printf("--是否还要继续输入数据?--\n");
printf("--是(Y)/否(N)--\n");
adjust=getchar();
if(adjust=='Y')
{
size++;
LST.last++;
goto loop;
}
else
return;
}

void ins(SQLIST LST)
{
int size;
int data_local;
int data_insert;
char adjust;
printf("--进行插入操作--\n");
loop:
printf("插入的元素:");
scanf("%d",&data_insert);
printf("插入的位置:");
scanf("%d",&data_local);

if(data_local>=MAXSIZE||data_local<=0)
printf("--输入错误,超出数组极限!--");
else
for(size=++LST.last;size>=data_local;size--)
LST.datas[size]=LST.datas[size-1];
LST.datas[data_local]=data_insert;

printf("--是否继续进行插入操作?--\n");
printf("是(Y)/否(N)\n");
adjust=getchar();
if(adjust=='Y')
goto loop;
else
return;
}

void del(SQLIST LST)
{
char adjust;
int size;
int data_del;

printf("--进行删除操作--\n");
loop:
printf("输入要删除元素的位置:");
scanf("%d",&data_del);
for(size=data_del;size<LST.last;size++)
LST.datas[size]=LST.datas[size+1];
LST.last--;

printf("--是否还要继续进行删除操作?--\n");
printf("是(Y)/否(N)");
adjust=getchar();
if(adjust=='Y')
goto loop;
else
return;
}

void disp(SQLIST LST)
{
int size;
printf("--所操作的顺序表--\n");
for(size=1;size<=LST.last;size++)
printf("%d ",LST.datas[size]);
}

搜索更多相关主题的帖子: 算法 
2007-10-02 18:08
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
#include <stdio.h>
#define DATATYPE int
#define MAXSIZE 100
里面第二行换成typedef int DATATYPE; 试试;

2007-10-02 19:58
cutboy
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-16
收藏
得分:0 
#DEFINE 只是简单的替换,而TPYEDEF 是定义新的数据类型,不是简单的替换.

2007-10-02 19:59
编程高手
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-10-2
收藏
得分:0 
高手是不用goto的
2007-10-03 01:53
快速回复:[求助]这个程序错在哪里啊?算法似乎没什么问题啊~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015669 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved