ordoki 2022-10-14 22:38 采纳率: 100%
浏览 22
已结题

代码无法编译,请问能怎么改

今天刷题时写了如下代码:

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){
    int N,ans=0;
    char B;
    cin>>N>>B;
    char card[4*N+1],type[4*N+1];
    for(int i=1;i<=4*N;i++){
        bool flag;
        int a;
        cin>>card[i]>>type[i];
        switch(type[i]){
            case B:
                flag=1;
                break;
            default:
                flag=0;
        }
        switch(card[i]){
            case'A':
                a=11;
                break;
            case'K':
                a=4;
                break;
            case'Q':
                a=3;
                break;
            case'J':
                a=flag?20:2;
                break;
            case'T':
                a=10;
                break;
            case'9':
                a=flag?14:0;
                break;
            case'8':
                a=0;
                break;
            case'7':
                a=0;
                break;
        }
        ans+=a;
    }
    cout<<ans;
    return 0;
}

编译时提示如下错误:

img


请问这是为什么捏

  • 写回答

3条回答 默认 最新

  • lzl2040 新星创作者: 人工智能技术领域 2022-10-14 23:13
    关注

    case B是不对的,应该是 case 'B'

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int main(){
        int N,ans=0;
        char B;
        cin>>N>>B;
        char card[4*N+1],type[4*N+1];
        for(int i=1;i<=4*N;i++){
            bool flag;
            int a;
            cin>>card[i]>>type[i];
            switch(type[i]){
                case 'B':
                    flag=1;
                    break;
                default:
                    flag=0;
            }
            switch(card[i]){
                case'A':
                    a=11;
                    break;
                case'K':
                    a=4;
                    break;
                case'Q':
                    a=3;
                    break;
                case'J':
                    a=flag?20:2;
                    break;
                case'T':
                    a=10;
                    break;
                case'9':
                    a=flag?14:0;
                    break;
                case'8':
                    a=0;
                    break;
                case'7':
                    a=0;
                    break;
            }
            ans+=a;
        }
        cout<<ans;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月15日
  • 已采纳回答 10月15日
  • 创建了问题 10月14日