|
|
#2
q9820043422011-10-06 12:57
首先你写的代码真伟大,写的你自己可能都不认识了吧!写代码时候你自己像那种++,--的再纸上画一画就很清楚了,然后在你这个程序中一个重要问题是你对位置和元素这两个词不分,我不敢佩服你的汉语!!不说了上代码!优化你自己去搞,现在给你搞得能运行了,没错。一定要注意逻辑!你连表中什么都没有就调用长度获取函数!佩服!然后就是不对定义的函数声明!!问题多得没话说!不说了上代码!!我很讨厌你的那句 // printf("\tNull!!");// getchar();你很喜欢这两句话吗,没做完一个函数你就来个输出null,真不知道你想干嘛?!!!
程序代码:#include <stdio.h> 再给你上幅图!欧了#include<stdlib.h> #define MaxLen 100 typedef int ElemType; typedef struct { ElemType data[MaxLen]; int length; }sqList; sqList L; void Initlist(sqList *L); int Getlen(sqList *L); ElemType Getelem(sqList *L); void Locate(sqList *L); void Inselem(sqList *L); void Delelem(sqList *L); void output(sqList *L); void main() { Initlist(&L); Getelem(&L); Getlen(&L); Locate(&L); Inselem(&L); Delelem(&L); output(&L); } void Initlist(sqList *L) { L->length=0; printf("\t Null!\n"); //getchar(); } int Getlen(sqList *L) { return L->length; } ElemType Getelem(sqList *L) { int i,j=0; while(i) { printf("请输入数据:\n"); scanf("%d",&i); L->data[j++]=i; (L->length)++; } /*getchar(); if (i<1||i>L->length) { printf("error"); exit(1); }*/ return L->data[i-1]; } void Locate(sqList *L) { int i=0; ElemType x; printf("请输入你要查找的元素:\n"); scanf("%d",&x); //getchar(); while(i<L->length&&L->data[i]!=x) i++; if(i<L->length) { printf("你要查找的位置是%d\n",i); } else printf("找不到该位置\n"); //getchar(); } void Inselem(sqList *L) { int i,j; ElemType x; printf("请输入你要插入的位置和数据\n"); scanf("%d%d",&i,&x); if(i<1||i>L->length) { printf("Error!"); exit(1); } if(L->length==MaxLen) { printf("overflow!"); exit(1); } for(j=L->length;j>=i;j--) L->data[j+1]=L->data[j]; L->data[i]=x; L->length++; // output(L); //printf("\t Null!!"); //getchar(); } void Delelem(sqList *L) { int i=0,j=0; printf("请输入你想要删除的数据位置\n"); scanf("%d",&i); //getchar(); if(i<1||i>L->length) { printf("not found!");exit(0);} for(j=i;j<=L->length-1;j++) L->data[j-1]=L->data[j]; L->length--; // printf("\tNull!!"); // getchar(); } void output(sqList *L) { int i; for (i=0;i<Getlen(L);i++) { //printf("输入顺序表:\n"); printf("%d",L->data[i]); } printf("\n"); } 只有本站会员才能查看附件,请 登录 |
#include <stdio.h>
#include<stdlib.h>
#define MaxLen 100
typedef int ElemType;
typedef struct {
ElemType data[MaxLen];
int length;
}sqList;
sqList L;
void main()
{
void Initlist(&L);
int Getlen(&L);
ElemType Getelem(&L);
void Locate(&L);
void Inselem(&L);
void Delelem(&L);
void output(&L);
}
void Initlist(sqList *L)
{
L->length=0;
printf("\t Null!\n");
getchar();
}
int Getlen(sqList *L)
{
return L->length;
}
ElemType Getelem(sqList *L)
{
int i;
printf("请输入数据:\n");
scanf("%d",&i);
getchar();
if (i<1||i>L->length)
{
printf("error");
exit(1);
}
return L->data[i-1];
}
void Locate(sqList *L)
{
int i=0;
ElemType x;
printf("请输入你要查找的位置:\n");
scanf("%d",&x);
getchar();
while(i<L->length&&L->data[i]!=x)
i++;
if(i<L->length)
{
printf("请输入你要查找的位置是%d\n",i+1);
}
else
printf("找不到该位置\n");
getchar();
}
void Inselem(sqList *L)
{ int i,j;
ElemType x;
printf("请输入你要插入的数据和位置\n");
scanf("%d %d",&i,&x);
if(i<1||i>L->length+1)
{ printf("Error!");
exit(1);
}
if(L->length==MaxLen)
{ printf("overflow!");
exit(1);
}
for(j=L->length;j>=i;j--)
L->data[j]=L->data[j-1];
L->data[i-1]=x;
L->length++;
printf("\t Null!!");
getchar();
void Delelem(sqList *L)
{
int i=0,j=0;
printf("请输入你想要删除的数据\n");
scanf("%d",&i);
getchar();
if(i<1||i>L->length)
{ printf("not found!");exit(0);}
for(j=i;j=L->length-1;j++)
L->data[j-1]=L->data[j];
L->length--;
printf("\tNull!!");
getchar();
}
void output(sqList *L)
{
int i;
for (i=0;i<Getlen(L);i++)
{
printf("输入顺序表:\n");
printf("%d",L->data[i]);
}
}
程序代码: