小小黑¥¥¥ 2021-02-22 23:19 采纳率: 100%
浏览 36
已结题

c语言中随机生成的数存放在数组中,为什么不能被其他数替换掉?

 

  • 写回答

3条回答 默认 最新

  • 小白小白你好菜 2021-02-23 00:12
    关注

    你的二维数组的第一维大小为4,那么你的下标上限应该为3,在你交换位置的那段循环代码里面,a[N][k]下标越界,把N改成N-1就行了。

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #define N 4
    int main()
    {
        int i, j, ch[6] = {0}, ab[6] = {0}, k, a[N][6];
        srand(time(0));                         /*设置时间种子*/
        printf("原数组:\n");
        for(i = 0; i < N; i++){
    		for(j = 0; j < 6; j++){
    			a[i][j] = 1 + rand()%99;              /*产生1到99的数给数组a*/
             	printf("%3d",a[i][j]);
            }
            printf("\n");
        }
        printf("\n");
        for(k = 0; k < 6; k++)                       /*交换位置第一和最后*/
        {
    
            ch[k] = a[0][k];
            ab[k] = a[N-1][k];
            printf("%3d", ch[k]);
            a[N-1][k] = ch[k];
            a[0][k] = ab[k];
            printf("%-5d", a[0][k]);
        }
        printf("\n");
        printf("第一行和最后一行交换位置后的数组:\n");
        for(i = 0; i < N; i++){
            for(j = 0; j < 6; j++)
                printf("%3d", a[i][j]);
            printf("\n");
        }
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月4日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?