zsh669 2021-12-28 15:49 采纳率: 87.5%
浏览 175
已结题

c语言switch case语句无法正常执行

#include <stdio.h>
#include <easyx.h>
#include <conio.h>
#include <time.h>
#include <graphics.h>
#include <stdlib.h>
#include <iostream>
#include<mmsystem.h>
#include<math.h>
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

// 声明需要使用的函数
void carstart(int x, int y, int z);
void drawbus();
void init();

// 定义全局变量
IMAGE img;
// 初始化函数,初始化窗口大小,获取所画图片
void init()
{
    // 初始化窗口大小
    initgraph(600, 600);

    // 等待按键按下
    _getch();

    cleardevice();                        // 清除上面的文字进入运行效果画面
    drawbus();                            // 调用绘图函数,绘制 BUS
    getimage(&img, 80, 40, 180, 90);    // 获取 BUS 图片位置,保存在 img 变量中
}


//
// 车辆行驶程序,通过 putimge 函数,改变移动的像素来达到图片移动
void carstart(int x, int y, int z)
{
    cleardevice();
    putimage(x, 40, &img);
    setlinestyle(PS_SOLID, 10);   //设置画线的大小
    line(0, 135, 600, 135);
    putimage(y, 220, &img);
    line(0, 315, 600, 315);
    putimage(z, 380, &img);
    line(0, 475, 600, 475);
}


//
// 绘制 BUS 函数,通过画一些线条,组合它们的位置,组合成一辆小车
void drawbus()
{
    setcolor(RED);
    setfillstyle(BLUE);

    fillcircle(120, 120, 10);         // 画车的轮胎
    fillcircle(200, 120, 10);         // 画车的轮胎
    line(80, 120, 110, 120);        // 画车的底部车板
    line(80, 40, 80, 120);         // 画车的四周车板
    line(130, 120, 190, 120);        // 画车的底部车板
    line(210, 120, 250, 120);        // 画车的底部车板
    line(250, 40, 250, 120);         // 画车的四周车板
    line(80, 40, 250, 40);        // 画车的顶部车板

    // 画车窗
    for (int x = 90, y = 100; x < 190 && y < 190; x += 15, y += 15)
    {
        rectangle(x, 60, y, 70);
    }

    // 画车门
    rectangle(220, 60, 240, 120);
    line(230, 60, 230, 120);
    circle(230, 90, 5);
}


void fun()
{
    init();
    int x = 0, y = 0, z = 0;
    BeginBatchDraw();

    while (!_kbhit())
    {
        x += 2;
        y++;
        z += 3;
        if (x > 600)    x = -200;
        if (y > 600)    y = -200;
        if (z > 600)    z = -200;

        carstart(x, y, z);
        FlushBatchDraw();
        Sleep(5);
    }

    EndBatchDraw();
    closegraph();
}
char showMainMenu() {
    char inputChar;
    //清屏
    system("cls");
    //获取输入
    inputChar = _getch();
    return inputChar;
}
void right() {
    printf("1");
}
int main(){
    char inputChar;
        inputChar = tolower(showMainMenu());
         switch (inputChar) {
        case 0:
        right();
       default:
         fun();
}}



为什么在输入0后无法正常的进入right函数printf“1",请问怎么进行修改,谢谢!

  • 写回答

2条回答 默认 最新

  • 技术专家团-Bamboo 2021-12-28 15:54
    关注

    case '0':
    不是字符型的嘛

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效