标题:郁闷!输出竟然这样.....
只看楼主
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
 问题点数:0 回复次数:5 
郁闷!输出竟然这样.....
大家帮忙看看,这个程序是实现顺序表删除从第i个元素开始起的k个元素.调试能运行,但输出竟然如此奇怪.
源程序:
#define List_Init_Size 100
#define ListIncrement 10
typedef struct{
int *elem;
int length;
int listsize;
}Sqlist;
Sqlist L;
void Init_Sq(){
int i=0;
int tag=1;
L.elem=(int *)malloc(List_Init_Size*sizeof(int));
if(!L.elem) return 0;
L.length=0;
L.listsize=List_Init_Size;
printf("input integers to init the Sqlist:\n");
printf("please input 'n' when you complete\n");
while(tag==1)
{
scanf("%d",&L.elem[i++]);
if(L.elem[i]==110) tag=0;
L.length++;
}
L.length--;
}
void Delete_Sq(Sqlist L,int i,int k){
if(i<1||k<0||i+k>L.length)
return 0;
while((i+k-1)<L.length)
{L.elem[i-1]=L.elem[i+k-1]; i++;}
L.length-=k;
printf("After delete:\n");
for(i=0;i<L.length;i++)
printf("%3d",L.elem[i]);
}
void main()
{
Init_Sq();
Delete_Sq(L,2,3);
}
搜索更多相关主题的帖子: int Init List elem 输出 
2006-08-18 11:30
bdcwq
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-30
得分:0 
再看看指针吧~~

2006-08-18 12:37
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
得分:0 

朋友到底是会还是不会啊,指针感觉还算可以吧,你说的好象很专业却又不给一点解释,我都晕了...

2006-08-18 23:46
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
得分:0 
以下是引用无铭剑客在2006-8-18 11:30:06的发言:
大家帮忙看看,这个程序是实现顺序表删除从第i个元素开始起的k个元素.调试能运行,但输出竟然如此奇怪.
源程序:
#define List_Init_Size 100
#define ListIncrement 10
typedef struct{
int *elem;
int length;
int listsize;
}Sqlist;
Sqlist L;
void Init_Sq(){
int i=0;
int tag=1;
L.elem=(int *)malloc(List_Init_Size*sizeof(int));
if(!L.elem) return 0;
L.length=0;
L.listsize=List_Init_Size;
printf("input integers to init the Sqlist:\n");
printf("please input 'n' when you complete\n");
while(tag==1)
{
scanf("%d",&L.elem[i++]);//问题出在这,
if(L.elem[i]==110) tag=0;
L.length++;
}
L.length--;
}
void Delete_Sq(Sqlist L,int i,int k){
if(i<1||k<0||i+k>L.length)
return 0;
while((i+k-1)<L.length)
{L.elem[i-1]=L.elem[i+k-1]; i++;}
L.length-=k;
printf("After delete:\n");
for(i=0;i<L.length;i++)
printf("%3d",L.elem[i]);
}
void main()
{
Init_Sq();
Delete_Sq(L,2,3);
}

输入有问题!!


汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-08-19 01:37
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
得分:0 
scanf("%d",&L.elem[i]);
if(L.elem[i]==110) tag=0;
i++;
L.length++;


改成现在这样应该行了吧,但输出还是那样,怎么办?希望高手能解释清楚,可以调试的话,调试好在回复,要负责点嘛!
2006-08-19 16:59
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
得分:0 

太粗心了,编译器用的是W-TCscanf()后面忘了加getchar(),main()函数中忘了加getch();

2006-08-19 17:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-84659-1-1.html




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

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