爱学习的镇江老王 2020-07-21 19:32 采纳率: 100%
浏览 135
已采纳

C语言://不知道为什么,超过5个元素,运算结果就不对

//exercise10_10 两个数组中对应元素相加存入第三个数组
//不知道为什么,超过5个元素,运算结果就不对 
#include<stdio.h>
#include<stdlib.h>
void input(int m,const int x[m]);
void show(int m,const int x[m]);
void add(int m,int const x[m],int const y[m],int z[m]);
int main(void)
{
    int t;
    int const a[t];
    int const b[t];
    int c[t];
    printf("how many number in one array.please input:\n");
    scanf("%d",&t);
    while(getchar() != '\n');
    printf("input a array %d int.\n",t);
    input(t,a);
    printf("show a array %d int.\n",t);
    show(t,a);
    printf("input b array %d int.\n",t);
    input(t,b);
    printf("show b array %d int.\n",t);
    show(t,b);
    printf("c array = a array + b array.\n");
    add(t,a,b,c);
    show(t,c);
    system("pause");
    return 0;
}
void input(int m,int const x[m])
{
    int i;
    for(i=0;i<m;i++)
        scanf("%d",&x[i]);
    while(getchar() != '\n');
}
void show(int m,int const x[m])
{
    int i;
    for(i=0;i<m;i++)
        printf("%d  ",x[i]);
    printf("\n");
}
void add(int m,int const x[m],int const y[m],int z[m])
{
    int i;
    for(i=0;i<m;i++)
        z[i]=x[i]+y[i];
}
  • 写回答

1条回答 默认 最新

  • 鞠杉 2020-07-21 20:38
    关注

    给你大概改了一下,实现的功能是这个意思吧

    图片说明

    #include<stdio.h>
    #include<stdlib.h>
    void input(int m,const int x[]);
    void show(int m,const int x[]);
    void add(int m,int const x[],int const y[],int z[]);
    int main(void)
    {
        printf("how many number in one array.please input:\n");
        int t;
        scanf("%d",&t);
        const int a[t]={0};
        const int b[t]={0};
        int c[t];
    
        printf("input a array %d int.\n",t);
        input(t,a);
        printf("show a array %d int.\n",t);
        show(t,a);
        printf("input b array %d int.\n",t);
        input(t,b);
        printf("show b array %d int.\n",t);
        show(t,b);
        printf("c array = a array + b array.\n");
        add(t,a,b,c);
        show(t,c);
        system("pause");
        return 0;
    }
    void input(int m,int const x[])
    {
        int i;
        for(i=0;i<m;i++)
            scanf("%d",&x[i]);
        while(getchar() != '\n');
    }
    void show(int m,int const x[])
    {
        int i;
        for(i=0;i<m;i++)
            printf("%d  ",x[i]);
        printf("\n");
    }
    void add(int m,int const x[],int const y[],int z[])
    {
        int i;
        for(i=0;i<m;i++)
            z[i]=x[i]+y[i];
    }
    

    (忍不住吐槽一句,这原本的代码错误好多。)

    希望能够采纳哦,嘻嘻嘻。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?