CCF基础P54练习题解

来源:互联网 发布:网络创业的优点 编辑:程序博客网 时间:2024/06/16 23:43

练习1

#include <string>#include <iostream>#include <cctype>using namespace std;bool judge(string s) {    if(!isalpha(s[0])) {        return false;    }    string::iterator it = s.begin();    for(; it != s.end(); ++it) if(!isdigit(*it) && !isalpha(*it) && *it != '_') return false;    return true;}int main() {    string s;    cin >> s;    cout << (judge(s) ? "yes" : "no");    return 0;}

练习2

#include <string>#include <iostream>#include <cctype>using namespace std;int number[30] = {0};void count(string s) {    string::iterator it = s.begin();    for(; it != s.end(); it++) {        if(isupper(*it)) number[*it - 'A']++;    }}int main() {    string s;    while(getline(cin, s)) {        count(s);    }    int max = 0, i;    for(i = 0; i < 26; i++) if(number[i] > max) max = number[i];    int j;    for(i = max; i > 0; i--) {        for(j = 0; j < 26; j++) printf("%c ", (number[j] >= i) ? '*' : ' ');        printf("\n");    }    printf("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");    return 0;}

输入样例

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
[EOF]

输出样例

输出样例练习2

练习3

#include <string>#include <iostream>#include <cctype>using namespace std;void print(int p1, int p2, int p3, char front, char back) {    if(back >= front) {        printf("-");        return;    }    if(p3 == 1) {        for(int i = front; i < back; i++) {            for(int j = p2; j > 0; j--) printf("%c", )        }    }}int main() {    int p1, p2, p3;    cin >> p1 >> p2 >> p3;    string s;    cin >> s;    string::iterator it = s.begin();    for(; it != s.end(); it++) {        if(*it == '-') print(p1, p2, p3, *(it - 1), *(it + 1)); else printf("%c", *it);    }    return 0;}
0 0
原创粉丝点击