|
|
发表于 2023-11-7 17:41:43
|
显示全部楼层
这段代码显示不出结果的原因是在第二个嵌套循环中,出现了除以0的错误。在第二个嵌套循环中,变量c的初始值为0,然后在判断d%c==0时,因为c的值为0,导致除法运算出现错误。
要修复这个问题,需要将第二个嵌套循环中的条件判断改为c != 0,以避免除以0的错误。修改后的代码如下:
- #include<stdio.h>
- int main()
- {
- int n, m, c, d, e;
- c = 0;
- scanf("%d %d", &n, &m);
- d = 0;
- e = m;
- int a[n];
- for (c = 0; c < n; c++) {
- a[c] = 1;
- }
- int f = -1;
- for (d = 0; d < n; d++) { //n是编号
- for (c = 1; c < m; c++) { //m是人
- if (d % c == 0) {
- a[c] = a[c] * f;
- }
- }
- }
- for (n = 0; n < e; n++) {
- switch (a[n]) {
- case 1:
- printf("%d,", n);
- break;
- case -1:
- printf("");
- break;
- default:
- break;
- }
- }
- printf("\b");
- return 0;
- }
复制代码
修复后的代码将能正确地显示出结果。 |
|