| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 770 人关注过本帖
标题:[求助] 运行结果奇怪的程序?
只看楼主 加入收藏
tang1000000
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-9-23
收藏
 问题点数:0 回复次数:5 
[求助] 运行结果奇怪的程序?

#define OVERFLOW -2
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define LIST_SIZE 10
typedef struct student
{
int * elem;
int length;
int size;
}List;


int List_in(List &L)
{
L.elem=(int *)malloc(LIST_SIZE*sizeof(int));
if(!L.elem) return ERROR;
L.length=0;
L.size=LIST_SIZE;
}


int interst(List &L,int i,int e)
{
int *p,*q;
if(i<1 ||i>L.length+1) return ERROR;
q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>q;p--)
{
*(p+1)=*p;
*q=e;

L.length++;

}
return OK;
}
int delete_s(List &L,int i,int & e)
{
int j=0;
for(j=L.length-1;j>i;i++)
L.elem[j-1]=L.elem[j];
e=L.elem[j-1];
--L.length;
return OK;
}

int getelem(List L,int i,int &e)
{
if(i<1 || i>L.length) return ERROR;
e=L.elem[i-1];
return OK;
}

void main()
{
List L;
int n,i,e,k;
List_in(L);
printf("请输入10个数据\n");
for(i=1;i<=10;i++)
{
scanf("%d ",&n);
interst(L,i,n);
}
printf("请输入你要删除的数位序 :");
scanf("%d",&k);
delete_s(L,i,k);
printf("请输入你要查找的元素为数 :");
scanf("%d",&i);
printf("你要查找的元素是:");
getelem(L,i,e);
printf("e= %d\n ",e);
}



大家看一下,为什么我这个程序运行的结果有些奇怪呢?大家试一下就知道了,我也不知道该怎么样表达。
谢谢了!

搜索更多相关主题的帖子: int define include LIST 
2006-10-16 13:16
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
我没有运行过,估计是输入数据的时候按回车就会出现问题,这样是不会足够有10数输入的

c++/C + 汇编 = 天下无敌
2006-10-17 13:02
tang1000000
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-9-23
收藏
得分:0 

大家都来看看,帮我解决这个的问题了啊!高手们!谢谢了.我真的不知道怎么错了啊!

2006-10-22 23:50
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
你还是重写个吧,看的头晕

2006-10-23 18:55
fuxiong
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-10-19
收藏
得分:0 

我看了一下你的程序,你的主函数有问题。其实你的主函数真让人烦

2006-10-25 00:24
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 

#define OVERFLOW -2
#include <stdio.h> // 这是C里面的吧
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define LIST_SIZE 10
typedef struct student
{
int * elem;
int length;
int size;
}List;


int List_in(List &L) // 这怎么又用到 C++ 里面的引用?
{
L.elem=(int *)malloc(LIST_SIZE*sizeof(int));
if(!L.elem) return ERROR;// 返回 ERROR 后,主函数里也没判断,和没返回一样啊
L.length=0; // 可心用printf输出错误信息
L.size=LIST_SIZE;
}


int interst(List &L,int i,int e)
{
int *p,*q;
if(i<1 ||i>L.length+1) return ERROR;
q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>q;p--)
{
*(p+1)=*p;
*q=e;

L.length++;

}
return OK;
}
int delete_s(List &L,int i,int & e)
{
int j=0;
for(j=L.length-1;j>i;i++)
L.elem[j-1]=L.elem[j];
e=L.elem[j-1];
--L.length;
return OK;
}

int getelem(List L,int i,int &e)
{
if(i<1 || i>L.length) return ERROR;
e=L.elem[i-1];
return OK;
}

void main()
{
List L;
int n,i,e,k;
List_in(L);
printf("请输入10个数据\n");
for(i=1;i<=10;i++)
{
scanf("%d ",&n);
interst(L,i,n);
}
printf("请输入你要删除的数位序 :");
scanf("%d",&k);
delete_s(L,i,k);
printf("请输入你要查找的元素为数 :");
scanf("%d",&i);
printf("你要查找的元素是:");
getelem(L,i,e); // 把引用改成地址传值就可以了
printf("e= %d\n ",e);
}


片言可以明百意 坐驰可以役万里
2006-11-21 13:18
快速回复:[求助] 运行结果奇怪的程序?
数据加载中...
 
   



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

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