Mastermate官网 香港|英国|新加坡|澳大利亚|澳门|深圳硕士研究生申请平台

2012百度之星~参赛经历~

  百度之星参赛经历~~真的让我很郁闷~

  得出来的结论~~

  要细心一点尤其是  c++-----java   这道题要注意 在处理字符串的时候有 len 后 for 循环的变量是从 0 - len-1。这样才合理。

这是自己错误的情况还要考虑

1:首字符是小写字符。

2:所有的字符中仅包含'_',A-Z,a-z这个范围内的数据。

3:最后的字符不应含有‘_’.

4:不应含有连续两个或两个以上的‘_’.会影响最后结果的判定。

5:包含有仅有小写字母(只有一个单词的情况)原样输出:

6:输出 c()转换。

7:输出java()转换。

下面附上这道题:  注意输出不包含样例

 

E:C++ 与Java

 

时间限制: 
2000ms
 
内存限制: 
65536kB
描述

在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好者会说他们的程序更加整洁且不易出错。C++的爱好者则会嘲笑Java程序很慢而且代码很长。
另一个Java和C++爱好者不能达成一致的争论点就是命名问题。在Java中一个多个单词构成的变量名应该按照如下格式命名:第一个单词的开头用小写字母,其余单词都以大写字母开头,单词与单词之间不加分隔符,除单词的首字母之外的字母一律使用小写。例如:javaIdentifier, longAndMnemonicIdentifier, name, bAIDU.
与Java不同C++的命名全都使用小写字母,在单词和单词之间使用“_”来作为分隔符。例如:c_identifier, long_and_mnemonic_identifier, name (当名字中只有一个单词的时候,Java与C++的命名是相同的), b_a_i_d_u.
你的任务就是写一个程序能让C++和Java程序相互转化。当然转换完成的程序中的变量名也要符合其语言的命名规则,否则的话是不会有人喜欢你的转换器的。
首先你要做的就是写一个变量名转换器。给出一个变量名,你要先检测是Java的还是C++的,然后把它转化为另一种命名格式。如果两种都不是,那么你的程序就要报错。转换过程必须保持原有的单词顺序,只能改变字母的大小写和增加或删除下划线。


输入
输入有且仅有一行,是一个变量名,其中包含字母和下划线,长度不超过100。
输出
如果输入的是Java变量名那么输出它对应的C++形式。如果是C++的则输出对应的Java的形式。如果两种都不是就输出“Error!”。
样例输入
输入样例1:
long_and_mnemonic_identifier
输入样例2:
anotherExample
输入样例3:
i
输入样例4:
bad_Style
样例输出
输出样例1:
longAndMnemonicIdentifier
输出样例2:
another_example
输出样例3:
i
输出样例4:
Error!

 

 考虑的情况比较多:贴上自己的代码:

 

#include<stdio.h>
#include<string.h>
char a[110]; 
int len;
void java()
{
     int i;
     for(i=0;i<len;i++)
     {
     if(a[i]=='_'){printf("%c",a[++i]-32);}
     else printf("%c",a[i]);                   
     }
   printf("\n");
}
void c()
{
   int i;
   for(i=0;i<len;i++)
   {
   if(a[i]<='Z'&&a[i]>='A')printf("_%c",a[i]+32);
   else printf("%c",a[i]);
   }  
   printf("\n");
}
int main()
{    
      int flag1,flag2,flag3,flag4,i,sum1,sum2;
      while(gets(a))
      { 
        flag1=flag2=flag3=flag4=sum1=sum2=0;
        len=strlen(a);
        if(a[0]>'z'||a[0]<'a'||a[len-1]=='_'){printf("Error!\n");continue;}
        for(i=0;i<len;i++)
        {
          if(a[i]=='_'&&a[i+1]=='_'){flag1=1;break;}
          if(a[i]=='_'){flag2=1;}
          if(a[i]<='Z'&&a[i]>='A'){flag3=1;}
          if((a[i]<='Z'&&a[i]>='A')||(a[i]<='z'&&a[i]>='a')||a[i]=='_')sum1++;
          if(a[i]<='z'&&a[i]>='a')sum2++;                  
        }     
          if(flag1==1){printf("Error!\n");continue;}
          if(flag2==1&&flag3==1){printf("Error!\n");continue;}
          if(sum1!=len){printf("Error!\n");continue;}
          if(sum2==len){printf("%s\n",a);continue;}
          if(flag2==1){java();continue;}
          if(flag3==1){c();continue;}
      }   
} 

 

posted @ 2012-05-31 18:40  大嘴鸟  阅读(192)  评论(0编辑  收藏  举报
Mastermate官网 香港|英国|新加坡|澳大利亚|澳门|深圳硕士研究生申请平台