写了一个让用户输入数b,然后显示b阶单位矩阵的东西 #include"stdio.h" int main(void) { int b; scanf("%d",&b); int a[b][b]; for(int d=0;d<b;d++) { for(int c=0;c<b;c++) { if(c==d) { a[d][c]=1; } else { a[d][c]=0; } printf("%d",a[d][c]); if(c+1==b) { printf("\n"); } } } } |
|
额,其实不需要使用数组吧,说道数组,lz的程序可以运行?
|
|
可以运行
刚学到数组,来实践下 话说那个程序为什么输入720或以上的数字会出错呢? |
|
7分 | |
7分 |
数组分配在栈上,而栈的大小是有限的
只是打印出n阶单位矩阵,可以存储矩阵元素: int main(void) { int i, j, b; do { scanf("%d", &b); fflush(stdin); } while (b <= 0); for (i = 0; i < b; i++) { for (j = 0; j < b; j++) { if (i == j) printf("%-2d", 1); else printf("%-2d", 0); } printf("\n"); } return 0; } |
更正:可以不用存储矩阵元素
|
|
谢谢大家!我刚初学,溢出什么的也半懂不懂的
还有刚发现一个问题 |
|
6分 |
VC不支持VLA
不要在C++中使用VLA(尽管一些C++编译器支持VLA,但C++标准是不支持的) |