chinanoahli 2014-12-16 11:21 采纳率: 100%
浏览 1754
已采纳

C 复制数组的一点小问题 复制后输出结果和源数组不一样

 #include <stdio.h>

int i=5;

void input_array ( int array[] ){
    int a;
    for ( a=0; a<i; a++ ){
    scanf ( "%i", &array[a] );
    }
}

void output_array ( int array[] ){
    int a;
    for ( a=0; a<i; a++ ){
    printf ( "%i%s", array[a], "\t" );
    }
}

void copy_array ( int source[], int output[] ){
    int a;
    for ( a=0; a<i; a++ ){
        output[i]=source[i];
    }
}

int main(){
    int array[i];
    int copy_form_array [i];
    printf ("%s%i%s", "Pleast enter some numbers ( ", i, " integers limited ): \n");
    input_array ( array );
    output_array ( array );
    printf ( "%s", "\n" );
    copy_array ( array, copy_form_array );
    output_array ( copy_form_array );
    printf ("%s", "\n");
    return 0;
}

在做一个复制数组的练习的时候写了这些代码
编译时没有提示
运行结果如下

 $ ./20141210_am_copy_array 
Pleast enter some numbers ( 5 integers limited ): 
1 2 3 4 5
1   2   3   4   5   
1594599648  32767   1617756790  32767   1594599680

为什么数组复制后跟源数组不一样??
初学者表示百思不得其解额 :(

  • 写回答

4条回答 默认 最新

  • qqlindexi 2014-12-16 11:44
    关注
     void copy_array ( int source[], int output[] ){
        int a;
        for ( a=0; a<i; a++ ){
            output[i]=source[i];
        }
    }
    
    

    代换output[i]=source[i]; output[a]=source[a];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?