我的程序哪里有问题?

图片说明#in
#include
#include
#include
typedef struct{
int data[10];
}seqlist;
int input(seqlist *L,int a[],int n){
int i;
for(i=0;i L->data[i]=a[i];
}
int output(seqlist *L,int a[],int n){
int i;
for(i=0;i printf("%2d",L->data[i]);
}
main(){
seqlist *L;
int a[10];
int n,i;
printf("有多少数?\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("第%d个数:\n",i+1);
scanf("%d",&a[i]);
}
input(L,a,n);
output(L,a,n);
getch();
return 0;
}

结构体创建有问题,你创建的是一个结构体指针,并没有分配空间

方法一:直接创建结构体

 #include<stdio.h>
#include<conio.h>
typedef struct {
    int data[10];
}seqlist;

void input(seqlist *L, int a[], int n) {
    int i;
    for (i = 0; i <n;i++)
        L->data[i] = a[i];
}
void output(seqlist *L, int a[], int n) {
    int i;
    for (i = 0; i < n; i++)
        printf("%2d", L->data[i]);
}
int main() {
    seqlist L;
    int a[10];
    int n, i;
    printf("有多少数?\n");
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        printf("第%d个数:\n", i + 1);
        scanf("%d", &a[i]);
    }
    input(&L, a, n);
    output(&L, a, n);
    getch();
    return 0;
}

方法二:使用malloc给结构体指针分配空间

 #include<stdio.h>
#include<conio.h>
#include<malloc.h>
typedef struct {
    int data[10];
}seqlist;

void input(seqlist *L, int a[], int n) {
    int i;
    for (i = 0; i <n;i++)
        L->data[i] = a[i];
}
void output(seqlist *L, int a[], int n) {
    int i;
    for (i = 0; i < n; i++)
        printf("%2d", L->data[i]);
}
int main() {
    seqlist *L;
    L = (seqlist*)malloc(sizeof(seqlist));
    int a[10];
    int n, i;
    printf("有多少数?\n");
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        printf("第%d个数:\n", i + 1);
        scanf("%d", &a[i]);
    }
    input(L, a, n);
    output(L, a, n);
    getch();
    return 0;
}