KeleQAQ 2018-10-25 13:05 采纳率: 0%
浏览 387
已采纳

我的程序哪里有问题?

图片说明#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;
}

  • 写回答

1条回答 默认 最新

  • Italink 2018-10-25 14:27
    关注

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

    方法一:直接创建结构体

     #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
  • ¥15 electron 如何实现自定义安装界面
  • ¥15 关于#linux#的问题:子进程C运行“ls –l”命令,且显示“C运行ls-l命令”(语言-c语言)
  • ¥15 vs code配置c语言遇到这个问题