zoukankan      html  css  js  c++  java
  • 1164: 零起点学算法71——C语言合法标识符(存在问题)

    1164: 零起点学算法71——C语言合法标识符

    Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
    Submitted: 1080  Accepted: 484
    [Submit][Status][Web Board]

    Description

    输入一个字符串,判断其是否是C的合法标识符。 

    Input

     

    输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。 

    Output

     

    对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。 

    Sample Input

     
    3
    12ajf
    fi8x_a
    ff  ai_2
    

    Sample Output

    no
    yes
    no

    HINT

     请注意编译器的差异,可以使用TEST功能获得帮助。

    Source

     
     1 #include<stdio.h>
     2 #include<ctype.h>
     3 int main(){
     4     int n;
     5     char a[50];
     6     scanf("%d%*c",&n);  
     7     while(n--){
     8             int d=1;
     9             gets(a);
    10             if(a[0]!='_'&& !isalpha(a[0])){
    11                 printf("no
    ");
    12                 }
    13             else{
    14                 for(int j=1;a[j]!='';j++){
    15                     if(a[j]!='_'&&!isalnum(a[j])){
    16                         
    17                         printf("no
    ");
    18                         break;
    19                     }
    20                     else{
    21                         printf("yes
    ");
    22                         break; 
    23                     }
    24                 }      
    25             }        
    26     }
    27     return 0;
    28 }

    //按理来说,跳出第一层循环后不会输出yes 为什么会有这种情况

    AC代码:

     1 #include<stdio.h>
     2 #include<ctype.h>
     3 int main(){
     4     int n;
     5     char a[50];
     6     while(scanf("%d%*c",&n)!=EOF){
     7     while(n--){
     8             int d=1;
     9             gets(a);
    10             if(a[0]!='_'&& !isalpha(a[0])){
    11                 printf("no
    ");
    12                 }
    13             else{
    14                 for(int j=1;a[j]!='';j++){
    15                     if(a[j]!='_'&&!isalnum(a[j])){
    16                         
    17                         d=0;
    18                         break;
    19                     }
    20                 }
    21                 puts(d ? "yes" : "no");      
    22             }        
    23     }
    24     }
    25     return 0;
    26 }
  • 相关阅读:
    [Git & GitHub] 利用Git Bash进行第一次提交文件
    Linux下 Unison 实现文件双向同步
    Linux SSH使用公钥私钥实现免登陆
    SSH自动断开连接的原因
    hosts.deny 和hosts.allow 配置不生效
    bind启动时提示953端口被使用
    Linux查询系统配置常用命令
    Linux 查硬件配置
    BIND rndc—使用说明
    rndc 错误解决 和 远程配置
  • 原文地址:https://www.cnblogs.com/dddddd/p/6686917.html
Copyright © 2011-2022 走看看