| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:[求助]一个C的源程序 编译过不去
只看楼主 加入收藏
yiliyili
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-6
收藏
 问题点数:0 回复次数:1 
[求助]一个C的源程序 编译过不去

问题出现在delete0()的子函数里
在switch语句下的两个分支
具体报错:
'detele1' undifined;assuming extern returning int
'detele2' undifined;assuming extern returning int


源程序如下:
#include <stdio.h>
#include <malloc.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

typedef struct{
int elem[LIST_INIT_SIZE];
int length;
int listsize;
}sqlist;

initList(sqlist *q)/*建立线性表*/
{
int l,i;
printf("请定义线性表长度:");/*提示用户输入线性表长度*/
scanf("%d",&l);
if(l<=0||l>LIST_INIT_SIZE){/*判断长度是否符合要求*/
printf("长度错误\n");
q->length=0;
return 1;
}
q->listsize=LIST_INIT_SIZE;
q->length=l;
printf("请依次输入线性表元素,以回车键隔开\n");
for(i=0;i<l;i++){/*用户输入线性表元素*/
scanf("%d",&q->elem[i]);
}
return 1;
}

locate(sqlist *q)/*线性表的元素定位*/
{
int a,i,j;
printf("请输入要查询的元素:");/*用户输入待查元素*/
scanf("%d",&a);
for(i=0,j=1;i<q->length;i++)/*逐一比较线性表,并用j计数,存在则打印至屏幕*/
if(q->elem[i]==a){
printf("第%d个位置是%d\n",j,i+1);j++;
}
if(j==1)printf("元素不存在\n");/*判断是否存在元素a*/
getchar();
}

insert(sqlist *q)/*线性表插入*/
{
int i,j,e;
sqlist *t;
printf("请输入要插入的元素:");
scanf("%d",&e);/*用户输入元素*/
printf("请输入插入位置:");
scanf("%d",&i);/*用户输入元素插入于线性表的位置,程序将其置于第i个元素之前*/
if(i<=0||i>q->length+1)/*判断所输位置是否正确*/
{
printf("位置不合法\n");
return 0;
}
if(q->length>=q->listsize)
{
t=(sqlist *)realloc(q->elem,(q->listsize+LISTINCREMENT)*sizeof(sqlist));
if(!t)return 0;
q=t;
q->listsize+=LISTINCREMENT;
}

for(i=i-1,j=q->length;j>i;j--)/*原线性表中第i个及其后面的元素逐一后移一位*/
q->elem[j]=q->elem[j-1];
q->elem[i]=e;
q->length++;
return 1;
}

delete0(sqlist *q)/*删除选择*/
{
int t=1;
char c;
while(t>=1){
printf("1---------按元素删除\n");
printf("2---------按位置删除\n");
printf("3---------返回主菜单\n");
c=getchar();
switch(c)
{
case '1':delete1(q);break;
case '2':delete2(q);break;
case '3':t=0;
}
}
}

delete1(sqlist *q)
{
int t,i,j,k;
printf("请输入要删除的元素:");
scanf("%d",&t);
for(i=0,k=1;i<q->length;i++)
{if(q->elem[i]==t)
{
for(j=i;j<q->length-1;j++)/*第i+1个及其后面的元素逐一前移一位*/
{
q->elem[j]=q->elem[j+1];
q->length--;
}
k++;
}
if(q->elem[q->length-1]==t){
q->length--;
k++;
}
}
if(k==1)printf("元素不存在!\n");
return 1;
}

delete2(sqlist *q)/*线性表元素删除*/
{
int e,i;
printf("请输入要删除的元素的位置");
scanf("%d",&i);/*用户输入要删除元素的位置*/
if(i<=0||i>q->length)/*判断所输位置是否正确*/
{
printf("位置不合法");
return 0;
}
e=q->elem[i-1];/*使用e返回要删除元素*/
for(i=i-1;i<q->length-1;i++)/*第i+1个及其后面的元素逐一前移一位*/
q->elem[i]=q->elem[i+1];
q->length--;
return 1;
}

find_p(sqlist *q)/*寻找所输元素的前驱*/
{
int p,i,j,x;
printf("请输入你要查询的元素:");
scanf("%d",&x);/*用户输入目标元素*/
for(i=1,j=1;i<q->length;i++)/*逐一比较线性表,并用j计数,存在则将目标元素的前驱打印至屏幕*/
if(q->elem[i]==x){
p=q->elem[i-1];printf("第%d个前驱是%d,位于第%d个位置\n",j,p,i);j++;
}
if(j==1)printf("元素不存在\n");/*判断是否存在元素x*/
return 1;
}

find_n(sqlist *q)
{
int n,i,j,x;
printf("请输入你要查询的元素:");
scanf("%d",&x);/*用户输入目标元素*/
for(i=0,j=1;i<q->length-1;i++)/*逐一比较线性表,并用j计数,存在则将目标元素的后继打印至屏幕*/
if(q->elem[i]==x){
n=q->elem[i+1];printf("第%d个后继是%d,位于第%d个位置\n",j,n,i+2);j++;
}
if(j==1)printf("元素不存在\n");/*判断是否存在元素x*/
return 1;
}

print1(sqlist *q)/*打印线性表*/
{
int i;
if(q->length==0)printf("表空\n");/*判断线性表是否为空*/
else for(i=0;i<q->length;i++)printf("%d ",q->elem[i]);
}

main()
{
sqlist *p;
char a;
int truu;
truu=1;
p=(sqlist *)malloc(sizeof(sqlist));/*给线性表p分配空间*/
printf(" 首次运行请先执行创建线性表!");
while(truu>=1)
{
printf("\n1-----------------------创建线性表\n");
printf("2-----------------------线性表元素定位\n");
printf("3-----------------------线性表元素插入\n");
printf("4-----------------------线性表元素删除\n");
printf("5-----------------------寻找元素前驱\n");
printf("6-----------------------寻找元素后继\n");
printf("7-----------------------打印线性表\n");
printf("8-----------------------结束程序\n");
printf("请选择功能:\n");
a=getchar();/*等候用户输入子函数序号*/
switch(a)/*分支选择执行子函数*/
{
case '1':initList(p);break;
case '2':locate(p);break;
case '3':insert(p);break;
case '4':delete0(p);break;
case '5':find_p(p);break;
case '6':find_n(p);break;
case '7':print1(p);break;
case '8':truu=0;
}
}
}

[此贴子已经被作者于2007-11-4 13:13:52编辑过]

搜索更多相关主题的帖子: 编译 
2007-11-04 12:58
lw_China
Rank: 1
来 自:peking
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-11-4
收藏
得分:0 

单词写错了..汗个


在这里推荐一本书 <The C Programming Language>
2007-11-04 16:48
快速回复:[求助]一个C的源程序 编译过不去
数据加载中...
 
   



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

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