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];
}

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

图片说明

#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];
}

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

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