学生的记录由学号,得分组成,根据班级人数,将学生记录存放在结构体数组中。假设m位学生玩游戏,游戏规则如下:学生按学号顺序(升序)从2开始依次报数,报到质数得2分,其余数字得1分,求n轮后各学生的得分。要求:m,n,学号均由键盘输入。
3条回答 默认 最新
- CSDN专家-link 2021-05-31 10:52关注
就是做个循环啊,判断序号是否素数,人数循环,计算各人的分数
/* 学生的记录由学号,得分组成,根据班级人数,将学生记录存放在结构体数组中。 假设m位学生玩游戏,游戏规则如下:学生按学号顺序(升序)从2开始依次报数,报到质数得2分, 其余数字得1分,求n轮后各学生的得分。要求:m, n, 学号均由键盘输入。 */ typedef struct _student { int nID; int score; }student; bool isShusu(int n) { for (int i = 2; i < n; i++) { if (n%i == 0) return false; } return true; } void main() { student stu[100]; int m, n,i; printf("请输入班级人数:"); scanf_s("%d", &m); printf("\n"); printf("请逐个输入学生学号:"); for (i = 0; i < m; i++) { scanf_s("%d", &stu[i].nID); stu[i].score = 0; } printf("\n"); printf("请输入游戏轮数:"); scanf_s("%d", &n); printf("\n"); for (i = 0; i < n; i++) { if (isShusu(i+2)) stu[i % m].score += 2; else stu[i % m].score++; } for (i = 0; i < m; i++) { printf("学号%d的学生得分:%d\n", stu[i].nID, stu[i].score); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报