#include <stdio.h> int main() { int score = 87; //考试分数为87分 switch(score) {score/=10 /*想想以下代码为什么用这种方式; 这种方式的好处?*/ case 10: case 9: printf(""等级A""); break; case 8: printf(""等级B"&qunot); break; //这里是不是缺点什么? case 7: case 6: printf(""等级C"&qunot); //这里是不是缺点什么? default: printf(""等级D""); break; } return 0; }
时间: 2024-02-10 07:34:15 浏览: 103
这段代码的作用是根据考试分数输出对应的等级,其中分数为87分。代码使用了 switch-case 语句,根据分数的值匹配相应的 case 分支,然后输出对应的等级。这种方式使用 score /= 10 来将分数转化为整数,以便匹配 case 分支。这种方式的好处是可以减少 case 分支的数量。而缺点是,如果分数的范围比较大,那么 case 分支的数量可能会很多,导致代码冗长难以维护。此外,代码中缺少对于 0-59 分之间的分数的处理。
相关问题
增加开始界面包括开始游戏、游戏说明、退出游戏 #include <graphics.h> #include <stdio.h> #include <time.h> #include <conio.h> #pragma comment(lib,"winmm.lib") //最简单的贪吃蛇 #define NUM 100 //蛇的最大长度 //枚举4个方向 72 80 75 77 ↑↓←→ enum Ch{up=72,down=80,left=75,right=77}; //坐标 struct Coor { int x; int y; }; //蛇的结构体 struct Snake { int n; //蛇当前的节数 Ch ch; //方向 Coor szb[NUM]; //蛇每一节的坐标 }snake; //snake //食物 struct Food { int x; int y; bool isEat; }food; //游戏的初始化函数 void InitGame() { srand((unsigned int)time(NULL)); mciSendString(L"open 甩葱歌.mp3 alias BGM", 0, 0, 0); mciSendString(L"play BGM", 0, 0, 0); //先得到一条蛇 1节 right 320 240 snake.n = 4; snake.ch = right; snake.szb[0].x = 320; snake.szb[0].y = 240; sna
ke.szb[1].x = 300; snake.szb[1].y = 240; snake.szb[2].x = 280; snake.szb[2].y = 240; snake.szb[3].x = 260; snake.szb[3].y = 240; //初始化食物 food.isEat = true; //随机生成一个食物 food.x = rand() % 640; food.y = rand() % 480; } //绘制游戏界面 void DrawGame() { cleardevice(); //绘制蛇 for (int i = 0; i < snake.n; i++) { setfillcolor(RED); solidcircle(snake.szb[i].x, snake.szb[i].y, 10); } //绘制食物 setfillcolor(GREEN); solidcircle(food.x, food.y, 10); } //更新蛇的位置 void UpdateSnake() { //移动蛇 for (int i = snake.n - 1; i > 0; i--) { snake.szb[i].x = snake.szb[i - 1].x; snake.szb[i].y = snake.szb[i - 1].y; } //根据方向更新蛇头 switch (snake.ch) { case up: snake.szb[0].y -= 20; break; case down: snake.szb[0].y += 20; break; case left: snake.szb[0].x -= 20; break; case right: snake.szb[0].x += 20; break; default: break; } //判断是否吃到食物 if (snake.szb[0].x == food.x && snake.szb[0].y == food.y) { snake.n++; food.isEat = true; food.x = rand() % 640; food.y = rand() % 480; } } //判断游戏是否结束 bool IsGameOver() { //判断是否撞墙 if (snake.szb[0].x < 0 || snake.szb[0].x > 640 || snake.szb[0].y < 0 || snake.szb[0].y > 480) { return true; } //判断是否撞到自己 for (int i = 1; i < snake.n; i++) { if (snake.szb[0].x == snake.szb[i].x && snake.szb[0].y == snake.szb[i].y) { return true; } } return false; } //游戏结束 void GameOver() { //关闭音乐 mciSendString(L"close BGM", 0, 0, 0); //输出得分 printf("Game Over! You got %d score!\n", snake.n - 4); } //主函数 int main() { //初始化窗口 initgraph(640, 480); //初始化游戏 InitGame(); //游戏循环 while (1) { //绘制游戏界面 DrawGame(); //更新蛇的位置 UpdateSnake(); //判断游戏是否结束 if (IsGameOver()) { GameOver(); break; } //延时一段时间 Sleep(200); //判断是否需要重新生成食物 if (food.isEat) { food.isEat = false; } } //关闭窗口 closegraph(); return 0; }
请在这段代码中增加一个计分和判断是否及格功能:#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int num1, num2, result, answer, count = 0, correctCount = 0,score=0; int operatorCode; srand(time(NULL)); printf("欢迎来到儿童四则运算游戏!\n"); printf("请输入题目数量:"); scanf("%d", &count); for (int i = 0; i < count; i++) { // 生成随机数和运算符 num1 = rand() % 100; num2 = rand() % 100; operatorCode = rand() % 4; // 根据运算符代码计算结果 switch (operatorCode) { case 0: result = num1 + num2; break; case 1: result = num1 - num2; break; case 2: result = num1 * num2; break; case 3: result = num1 / num2; break; } // 输出题目,等待用户输入答案 printf("请计算%d %c %d = ?\n", num1, "+-*/"[operatorCode], num2); scanf("%d", &answer); // 判断用户答案是否正确 if (answer == result) { printf("回答正确!\n"); correctCount++; } else { printf("回答错误,正确答案是%d\n", result); } } // 输出游戏结果 printf("游戏结束,共回答了%d道题目,其中%d道回答正确。\n", count, correctCount); system("pause"); return 0; }
好的,以下是增加计分和判断是否及格功能的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int num1, num2, result, answer, count = 0, correctCount = 0, score = 0;
int operatorCode;
srand(time(NULL));
printf("欢迎来到儿童四则运算游戏!\n");
printf("请输入题目数量:");
scanf("%d", &count);
for (int i = 0; i < count; i++) {
// 生成随机数和运算符
num1 = rand() % 100;
num2 = rand() % 100;
operatorCode = rand() % 4;
// 根据运算符代码计算结果
switch (operatorCode) {
case 0:
result = num1 + num2;
break;
case 1:
result = num1 - num2;
break;
case 2:
result = num1 * num2;
break;
case 3:
result = num1 / num2;
break;
}
// 输出题目,等待用户输入答案
printf("请计算%d %c %d = ?\n", num1, "+-*/"[operatorCode], num2);
scanf("%d", &answer);
// 判断用户答案是否正确
if (answer == result) {
printf("回答正确!\n");
correctCount++;
score += 10; // 每回答正确一题,得10分
} else {
printf("回答错误,正确答案是%d\n", result);
score -= 5; // 每回答错误一题,扣5分
}
}
// 判断是否及格
if (correctCount >= count * 0.6) {
printf("恭喜你,你通过了本次测试!\n");
} else {
printf("很遗憾,你没有通过本次测试。\n");
}
// 输出游戏结果
printf("游戏结束,共回答了%d道题目,其中%d道回答正确,得分为%d分。\n", count, correctCount, score);
system("pause");
return 0;
}
```
现在程序会在用户回答正确时给用户加10分,在用户回答错误时扣5分。最后程序还会判断用户是否及格(即回答正确数量是否达到总题目数量的60%),并输出得分和游戏结果。
阅读全文