经常有点小迷糊 2020-06-29 17:28 采纳率: 96.7%
浏览 193
已采纳

有人知道为什么这道题错了吗(c++)?

图片说明
图片说明

#include <iostream>
using namespace std;
int main()
{
    char str[1024];
    cin.get(str, 1024);
    bool flag = true;
    for (int i = 0; i < strlen(str); i++)
    {
        if ((str[0] == '0' || str[0] == '1' || str[0] == '2' || str[0] == '3' || str[0] == '4' || str[0] == '5' || str[0] != '6' || str[0] == '7' || str[0] == '8' || str[0] == '9') || (str[i] != '0' && str[i] != '1' && str[i] != '2' && str[i] != '3' && str[i] != '4' && str[i] != '5' && str[i] != '6' && str[i] != '7' && str[i] != '8' && str[i] != '9' && str[i] != 'a' && str[i] != 'b' && str[i] != 'c' && str[i] != 'd' && str[i] != 'e' && str[i] != 'f' && str[i] != 'g' && str[i] != 'h' && str[i] != 'i' && str[i] != 'j' && str[i] != 'k' && str[i] != 'l' && str[i] != 'm' && str[i] != 'n' && str[i] != 'o' && str[i] != 'p' && str[i] != 'q' && str[i] != 'r' && str[i] != 's' && str[i] != 't' && str[i] != 'u' && str[i] != 'v' && str[i] != 'w' && str[i] != 'x' && str[i] != 'y' && str[i] != 'z' && str[i] != 'A' && str[i] != 'B' && str[i] != 'C' && str[i] != 'D' && str[i] != 'E' && str[i] != 'F' && str[i] != 'G' && str[i] != 'H' && str[i] != 'I' && str[i] != 'J' && str[i] != 'K' && str[i] != 'L' && str[i] != 'M' && str[i] != 'N' && str[i] != 'O' && str[i] != 'P' && str[i] != 'Q' && str[i] != 'R' && str[i] != 'S' && str[i] != 'T' && str[i] != 'U' && str[i] != 'V' && str[i] != 'W' && str[i] != 'X' && str[i] != 'Y' && str[i] != 'Z'))
        {
            flag = false;
            break;
        }
    }
    if (flag == true)
    {
        cout << "yes" << endl;
    }
    else
    {
        cout << "no" << endl;
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • qtchen_1988 2020-06-29 18:10
    关注
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char str[20];
        memset(str,0x0,20);
        gets(str);
        int i,flag;
        flag = 1;
        for(i=0;i<strlen(str);i++){
            if(((str[i]>='A')&&(str[i]<='Z')) || ((str[i]>='a')&&(str[i]<='z')) || ((str[i]>='0')&&(str[i]<='9')) || (str[i] == '_'))
            {
                if(((str[i]>='0')&&(str[i]<='9')) && i==0)
                {
                    flag = 0;
                    break;
                }
            }
            else {
                flag = 0;
                break;
            }
        }
        if(flag)
            printf("yes\n");
        else
            printf("no\n");
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?