爱学习的镇江老王 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 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输