我正在尝试编写一个读取20个数字的简单代码,然后以相反的顺序打印它们。
代码如下。
int main(){
int array[20];
int i;
for (i=0; i<20; i++) scanf("%d", &array[i]);
for (i=20; i > 0; i++) printf("%d\n", array[i]);
}
我无法弄清楚为什么在插入数字而不是打印它们之后会给我一个分段错误(11)
答案 0 :(得分:6)
第二个char *myMatrix = (char *)matrix_data;
matrix[x][y] = myMatrix + ((x - offset.x) * size.y * size.z +
(y - offset.y) * size.z - offset.z) * dataSize;
循环有3个问题:
for
代替>=0
) >0
答案 1 :(得分:2)
问题出在第二个awk '!p && p=index($0, ":"){$0=substr($0, p+1)} p' file
。您正在尝试访问阵列的第20个位置,但它只包含来自的索引
0到19,所以你的代码应该是:
for
答案 2 :(得分:1)
在你的循环中
for (i=20; i > 0; i++) printf("%d\n", array[i]);
你有三个错误。 a)应从19
开始,b)在0
结束,c)应减少,所以
for (i=19; i >= 0; i--) printf("%d\n", array[i]);
答案 3 :(得分:0)
将第二个for循环更改为19到0(含)。
答案 4 :(得分:0)
for (i=20; i > 0; i++) printf("%d\n", array[i]);
这应该是i--
。