2022 12 5
查过了原因,数组下标溢出
但是它只是在电脑的VS运行出问题,在手机上是正常的,就很离谱,希望未来的我可以找到答案。
代码为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #include <stdio.h>
void input(int a[]) { int i; for (i = 0;i < 10;i++) { printf("请输入第%d个数据:", i + 1); scanf_s("%d", &a[i]); }
}
void output(int c[]) { int i; for (i = 0;i < 10;i++) printf("%d \t", c[i]); }
void bidaxiao(int a[]) { int i, t, n = 9; do { for (i = 0;i < 10;i++) { if (a[i] <a[i + 1])continue; t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } n--; } while (n >= 0); }
int main() { int a[10]; input(a); bidaxiao(a); output(a); return 0; }
|
错误分析:
第30行:当i=9时,a[i+1]=a[10],int a[10]不包括a[10]