1 个回答
提问:请问这个程序哪里有错误
#include"stdio.h"#define MAXSIZE 50typedef int ElemType;typedef struct{ ElemType elem[MAXSIZE+1]; int length;} SeqList;SeqList input(void){ int i=1,n; SeqList L; scanf ("%d", &n); L.length=n; do { scanf ("%d", &L.elem[i]); i++; } while (i<=n); return L;}void output(SeqList L){ int i; for(i=1; i<=L.length; i++) printf("%d\t", L.elem[i]); return;}status Reverse(SeqList &L){ SeqList temp; int i; n=L.length; for(i=0; i<n/2; i++) { temp=L.elem[i]; L.elem[i]=L.elem[n-i-1]; L.elem[n-i-1]=temp; } return L;}void main(){ SeqList L; int j,n; L=input(); //scanf("%d",&n); reverse(L,n); output(L);}
网友回答:
程序有多处错,已修改好:
#include"stdio.h"
#define MAXSIZE 50
typedef int ElemType;
typedef struct
{
ElemType elem[MAXSIZE+1];
int length;
} SeqList;
SeqList input(void)
{
int i=0,n;
SeqList L;
scanf ("%d", &n);
L.length=n;
do
{
scanf ("%d", &L.elem[i]);
i++;
}
while (i<n);
return L;
}
void output(SeqList L)
{
int i;
for(i=0; i<L.length; i++)
printf("%d\t", L.elem[i]);
return;
}
SeqList Reverse(SeqList &L)
{
ElemType temp;
int i;
int n=L.length;
for(i=0; i<n/2; i++)
{
temp=L.elem[i];
L.elem[i]=L.elem[n-i-1];
L.elem[n-i-1]=temp;
}
return L;
}
int main()
{
SeqList L;
int j,n;
L=input();
//scanf("%d",&n);
// output(L);
Reverse(L);
output(L);
return 0;
}
测试
