第1关:加密字符串 问题描述 对于用户输入的一个字符串,按照以下的规则进行加密,并输出加密后的字符串。
对于小写字母a到x、大写字母A到X,用其后的第二个字母替换,例如a换成c; 对于小写字母y和z、大写字母Y和Z,相应地替换为小写字母a和b以及大写字母A和B; 其它字符不作任何变换。 输入 输入一行:待处理的字符串,字符串长度小于等于80。
输出 输入共包括两行: 第一行是原始字符串; 第二行是加密后的字符串。
输入示例 Hello, World!
输出示例 Hello, World! Jgnnq, Yqtnf!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> #include <string.h> int main () { int i; char str[81 ]={0 }; gets(str); printf ("%s\n" ,str); for (i=0 ;str[i]!='\0' ;i++){ if ((str[i]<='x' &&str[i]>='a' )||(str[i]>='A' &&str[i]<='X' )) printf ("%c" ,str[i]+2 ); else if ((str[i]>='Y' &&str[i]<='Z' )||(str[i]>='y' &&str[i]<='z' )) printf ("%c" ,str[i]-('Y' -'A' )); else printf ("%c" ,str[i]); } return 0 ; }
第2关:首字母大写 问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 注意:每个单词之间可以用除了字母以外的其它任意字符分割开来。
输入 输入一行:待处理的字符串,字符串长度小于等于80。
输出 输出一行:经过转换后的字符串,字符串中的每个单词都是首字母大写的。
提示 注意单词之间的分隔符可以是除了字母以外的任意字符,包括空格、标点符号或者数字等。
输入示例 if so, you already have a google account. you can sign in on the right.
输出示例 If So, You Already Have A Google Account. You Can Sign In On The Right.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <stdio.h> #include <string.h> #include <ctype.h> int main () { int i; char str[81 ]; gets(str); for (i=0 ;str[i]!='\0' ;i++){ if (isalpha (str[i])){ str[i]=toupper (str[i]); while (isalpha (str[i])){ i++; } } } for (i=0 ;str[i]!='\0' ;i++){ printf ("%c" ,str[i]); } return 0 ; }
问题描述 输入4行主要由大写字母构成的字符串,绘制出一个垂直直方图,给出每个大写字母出现的次数。
输入 输入包括4行主要由大写字母构成的字符串,每行上字符的数目不超过80个。
输出 输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。 注意:输出的第一行不能是空行。
输入示例
1 2 3 4 THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO!
输出示例
1 2 3 4 5 6 7 8 9 10 11 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <stdio.h> #include <stdlib.h> #include <string.h> int main () { char str[4 ][81 ]; char alpha='A' ; int count[26 ]={0 }; int i,j; int max=0 ; for (i=0 ;i<4 ;i++){ gets(str[i]); } for (i=0 ;i<4 ;i++){ for (j=0 ;str[i][j]!='\0' ;j++){ if (str[i][j]>='A' &&str[i][j]<='Z' ){ count[str[i][j]-'A' ]++; } } } for (i=0 ;i<26 ;i++){ if (count[i]>max){ max=count[i]; } } for (i=max;i>0 ;i--){ for (j=0 ;j<26 ;j++){ if (count[j]>=i){ printf ("* " ); }else { printf (" " ); } } printf ("\n" ); } for (i=0 ;i<26 ;i++){ printf ("%c" ,alpha+i); if (i!=25 ) printf (" " ); } return 0 ; }