司亓swag 2024-11-23 15:12 采纳率: 100%
浏览 3
已结题

switch语句,c语言

为啥都给我标红了,只能在开关内使用是什么意思呢?接下来我需要怎么做?

img

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    看起来你在写C语言的switch语句时遇到了一些问题。我会帮你分析并提供修正建议。首先,关于“标红”和“标签只能在开关内使用”的问题,这意味着你的代码中存在语法错误或不符合C语言的规范。让我们一步步来修复这些问题。

    针对图1的内容,我注意到以下几个问题:

    1. scanf_s函数的使用方式不正确,应该使用圆括号()包围参数。
    2. switch语句后面不应该有分号;
    3. case语句后面跟着的应该是常量或字面值,并且应该紧跟冒号:
    4. printf函数中的字符串参数应该用引号括起来。
    5. ak; ak;这部分代码不清楚意图,应该移除或替换为正确的代码。

    修正后的代码应该如下:

    #include <stdio.h>
    
    int main() {
        char grade;
        scanf_s("%c", &grade); // 注意圆括号的正确使用
        printf("YOUR score: ");
        switch (grade) { // 移除末尾的分号
            case 'A': // 注意冒号和单引号的使用
                printf("90~100\n");
                break;
            case 'B': // 这里假设你想要为B级别提供输出,可以根据需要添加其他case语句
                printf("80~89\n"); // 根据你的需求填写相应的输出内容
                break;
            // 继续添加其他case语句...
            case 'D': // 注意冒号的正确使用和字符串的引号使用
                printf("60~69\n"); // 注意字符串需要用引号括起来,并且语句结束要有分号
                break;
            case 'E': // 注意冒号的正确使用和字符串的引号使用,以及默认情况的冒号使用应该与前面的case对齐而不是缩进更深一层的位置
                printf("0~59\n"); 
                break; // 在最后一个分支结束后,不需要再使用冒号和其他符号,直接结束即可。同时注意末尾的冒号对齐问题。最后不需要再添加return语句和竖线符号。return语句应该出现在main函数的末尾而不是中间位置。而且末尾不需要冒号,直接使用分号结束即可。代码块应该以正确的缩进结构呈现。具体代码如下所示: `int main(){ ... return 0; }` (没有冒号)关于`ak`的使用可能是你的代码片段中暂时不确定的部分,你需要根据实际情况替换为正确的逻辑或注释掉这部分代码。总结一下,修复后的代码应该是这样的: #include <stdio.h> int main() { char grade; scanf_s("%c", &grade); printf("YOUR score: "); switch (grade) { case 'A': printf("90~100\n"); break; case 'B': printf("80~89\n"); break; case 'C': printf("C等级对应的分数范围\n"); break; case 'D': printf("60~69\n"); break; case 'E': printf("0~59\n"); break; default: printf("输入数据错误!\n"); } return 0; } 图2的内容与图1相似,修复方法与上述一致。确保代码的格式和结构正确,避免语法错误和不必要的符号或语句错误即可。如果你还有其他问题或需要进一步的帮助,请随时向我提问。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月23日