夜雨&(* 2021-11-23 13:46 采纳率: 88.9%
浏览 28
已结题

求解,为什么x的值一直都是0?

为什么x的值一直都是0?


#include<stdio.h>
int main()
{
    char money[10];
    char m[10] = { 'a','b','c','d','e','f','g','h','i','j'};
    char z[5] = { 'S','B','Q','W','Y' };
    char n[30];
    int k, l, ch, w, x = 0;
    for (k = 0, w = 0; k < 9; k++, w++)
    {
        money[k] = getchar();
        if (money[k] == '\n')
            break;    
    }
    ch = w;
    for (l = 0, k = 0; l < w; l++)
    {
        switch (money[l])
        {
        case 0:x = 0; break;
        case 1:x = 1; break;
        case 2:x = 2; break;
        case 3:x = 3; break;
        case 4:x = 4; break;
        case 5:x = 5; break;
        case 6:x = 6; break;
        case 7:x = 7; break;
        case 8:x = 8; break;
        case 9:x = 9; break;
        }
        n[k] = m[x];
        k++;
        switch (ch)
        {
        case 9:n[k] = z[4]; break;
        case 8:
        case 4:n[k] = z[2]; break;
        case 7:
        case 3:n[k] = z[1]; break;
        case 6:
        case 2:n[k] = z[0]; break;
        case 5:n[k] = z[3]; break;
        default:n[k] = ' ';
        }
        k++;
        ch--;
    }
    for (l = 0; l < k; l++)
    {
        printf("%c", n[l]);
    }
    return 0;

}

img

  • 写回答

1条回答 默认 最新

  • lesley_w 2021-11-23 14:14
    关注

    你的money[]是char,存进去是按ASCII码。switch里面case 1 这个地方用了int,把case后面的数字加上单引号就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 ARKts悬浮窗和快捷方式问题
  • ¥15 comparecluster没有办法kegg
  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES