#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<string.h> #include<ctype.h> int main() { int n; int a[6002] = { 0 }; scanf("%d", &n); int sum = n; int flag = 0; int blag = 0; int count = 0; for (int i = 1; i <= n; i++) { a[i] = 1; } int j = 3, k = 2; while (sum > 3) { if (flag == 0) { for (int i = 1; i <= n; i++) { count++; if (count % 3 == 0) { if (a[i] == 2) { count--; } else { a[i] = 2; sum--; count = 0; } } } flag = 1; } if (flag == 1) { for (int i = 1; i <= n; i++) { count++; if (count % 2 == 0) { if (a[i] == 2) { count--; } else { a[i] = 2; sum--; count = 0; } } } flag = 0; } } for (int i = 1; i <= n; i++) { if (a[i] != 0 && a[i] != 2) { if (blag == 0) { printf("%d", i); blag = 1; } else printf(" %d", i); } } return 0; }这个代码怎么改
时间: 2024-05-01 15:20:00 浏览: 116
UCOS-II的OS_CFG.H文件中各种定义的说明和设置
5星 · 资源好评率100%
这段代码实现的是约瑟夫环问题,但是代码逻辑比较混乱,命名不规范,可读性不高,建议进行以下修改:
1. 增加注释来解释代码的功能和实现方式,提高代码可读性。
2. 将变量名改为有意义的名称,易于理解。
3. 将常量和变量的定义放在函数开头,方便查看。
4. 将一些重复的代码封装成函数,提高代码的复用性和可维护性。
5. 使用更加安全的函数代替不安全的函数,例如使用 fgets() 代替 gets() 。
修改后的代码如下:
阅读全文