int a[60][250][1000]数组的遍历面试题
来源:互联网 发布:四层横移编程 编辑:程序博客网 时间:2024/06/01 21:17
请问 下面程序有什么错误?
int a[60][250][1000],i,j,k; for(k=0;k<=1000;k++)for(j=0;j<250;j++)for(i=0;i<60;i++)a[i][j][k]=0;
答案说是换循环语句?
int a[60][250][1000]; int i,j,k; for(k=0;k<60;k++) for(j=0;j<250;j++) for(i=0;i<1000;i++) a[k][j][i]=1;
理由是什么呢?
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
抱歉没用。。。
首先我运行了一下,k<=1000也是醉了的考点!
但是去了等号还是不能用的。是栈溢出了,原因是这个是在main中定义的一个局部变量,而局部变量是存储在栈中的,栈的容量不足以放下这样的大数组。
于是我换成了小数组,没问题了
int a[10][10][10],i,j,k; for(k=0;k<10;k++) for(j=0;j<10;j++) for(i=0;i<10;i++) a[i][j][k]=0;
加了个static表示静态更好,放在静态存储区,也没有这个问题了。
static int a[60][250][1000],i,j,k; for(k=0;k<1000;k++)for(j=0;j<250;j++)for(i=0;i<60;i++)a[i][j][k]=0;
阅读全文
0 0
- int a[60][250][1000]数组的遍历面试题
- int a[60][250][1000]数组的遍历
- 一道超偏的c++面试题: (int&)a
- java笔试面试题--int数组的默认值
- int *ptr=(int *)(&a+1)(面试题)
- C/C++:面试题 int *ptr=(int *)(&a+1);
- 一道超偏的c++面试题: (int&)a和(int)a的区别,考点:类型转换
- 面试题-Integer和int的区别
- 数组相关的面试题
- 关于数组的面试题
- 有关数组的面试题
- 数组的常见面试题
- 关于数组的面试题
- 关于数组的面试题
- Java笔记(11)-数组和枚举,int [] a,int a[],创建数组,数组遍历,复制数组,排序和二分法,枚举
- 面试题24 数组是不是二叉搜索树的后序优先遍历
- 《剑指Offer》面试题:判读数组是否是某二叉搜索树的后序遍历
- 近期面试题整理(二叉树的中序遍历、合并排序链表数组)
- 17年多校训练第十一题
- 一篇无用的代码(Go)
- spark 中RDD 和DataFrame以及DataSet
- 2017多校-1
- 巴什博弈
- int a[60][250][1000]数组的遍历面试题
- SDWebImage 源码分析
- [代码分享]用JS写中文版99乘法表
- 2017多校第二场 HDU 6052 To my boyfriend 思维,计数题
- 根据动态二维数组输出一个稀疏矩阵,根据我自己想输入的稀疏矩阵来输出对应的三元组
- MySql问题积累
- C++写时拷贝
- 1067. Sort with Swap(0,*) (25)
- 从Javascript向Chrome插件传递int参数的问题