L1-063~L1-064

题目

国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。
现在你要根据小宝宝的身高体重,给出补充营养的建议。
输入格式:
输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:
性别 身高 体重
其中性别是 1 表示男生,0 表示女生。身高和体重都是不超过 200 的正整数。
输出格式:
对于每一位宝宝,在一行中给出你的建议:
如果太矮了,输出:duo chi yu!(多吃鱼);
如果太瘦了,输出:duo chi rou!(多吃肉);
如果正标准,输出:wan mei!(完美);
如果太高了,输出:ni li hai!(你厉害);
如果太胖了,输出:shao chi rou!(少吃肉)。
先评价身高,再评价体重。两句话之间要有 1 个空格。
输入样例:
4
0 130 23
1 129 27
1 130 30
0 128 27
输出样例:
ni li hai! duo chi rou!
duo chi yu! wan mei!
wan mei! shao chi rou!
duo chi yu! shao chi rou!

代码

#include 
using namespace std;
int main()
{
    int all, a, b, c;
    cin >> all;
    while(all--)
    {
        cin >> a >> b >> c;
        if(a == 1)
        {
            if(b > 130)
                cout << "ni li hai! ";
            else if(b < 130)
                cout << "duo chi yu! ";
            else
                cout << "wan mei! ";
            if(c > 27)
                cout << "shao chi rou!" << endl;
            else if(c < 27)
                cout << "duo chi rou!" << endl;
            else
                cout << "wan mei!" << endl;
        }
        if(a == 0)
        {
            if(b > 129)
                cout << "ni li hai! ";
            else if(b < 129)
                cout << "duo chi yu! ";
            else
                cout << "wan mei! ";
            if(c > 25)
                cout << "shao chi rou!" << endl;
            else if(c < 25)
                cout << "duo chi rou!" << endl;
            else
                cout << "wan mei!" << endl;
        }

    }
}

题目

L1-063~L1-064_第1张图片以上图片来自新浪微博。
本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:
无论用户说什么,首先把对方说的话在一行中原样打印出来;
消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;
把原文中所有大写英文字母变成小写,除了 I;
把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;
把原文中所有独立的 I 和 me 换成 you;
把原文中所有的问号 ? 换成惊叹号 !;
在一行中输出替换后的句子作为 AI 的回答。
输入格式:
输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。
输出格式:
按题面要求输出,每个 AI 的回答前要加上 AI: 和一个空格。
输入样例:
6
Hello ?
Good to chat with you
can you speak Chinese?
Really?
Could you show me 5
What Is this prime? I,don 't know
输出样例:
Hello ?
AI: hello!
Good to chat with you
AI: good to chat with you
can you speak Chinese?
AI: I can speak chinese!
Really?
AI: really!
Could you show me 5
AI: I could show you 5
What Is this prime? I,don 't know
AI: what Is this prime! you,don’t know

代码

#include
#include
int main(void)
{
    char str1[1001];
    static int i,a,x,y,N,b;
    
    scanf("%d\n",&N);
    char str[N][1001];
    for(i=0;i'z')&&(str[b][i]<'A'||str[b][i]>'Z'))&&((str[b][i]<'0')||(str[b][i]>'9'))){
                if(str[b][i]=='?'){                       /*改变问号为叹号*/ 
                    str1[--a]='!';
                    a++;
                    x=1;
                }
                else{
                    str1[--a]=str[b][i];
                    a++;
                    x=1;
                }
            }
            else{
                if(str[b][i]<='Z'&&str[b][i]>='A'&&str[b][i]!='I'){       /*改大写为小写*/
                    str1[a]=str[b][i]-'A'+'a';
                    a++;
                    x=1;
                }
                else{
                    if(str[b][i]=='?'){                     /*改变问号为叹号*/
                        str1[a]='!';
                        a++;
                        x=1;
                    }
                    else{                               /*其他字母正常存入*/ 
                        str1[a]=str[b][i];
                        a++;
                        x=1;
                    }
                }
            }
        }
        i++;                      /*下一个字母*/ 
    }
    
    str1[a]='\0';                 /*添加字符串结束标记*/ 
    if(str1[a-1]==' '){           /*去掉字符串最后的空格*/ 
        str1[a-1]='\0';
    }
    
    i=0;
    while(str1[i]!='\0'){
        /*判断是否为can you*/
        if(str1[i]=='c'&&str1[i+1]=='a'&&str1[i+2]=='n'&&str1[i+3]==' '&&str1[i+4]=='y'&&str1[i+5]=='o'&&str1[i+6]=='u'){     
            if(((str1[i-1]<'a'||str1[i-1]>'z')&&(str1[i-1]<'A'||str1[i-1]>'Z'))&&((str1[i+7]<'a'||str1[i+7]>'z')&&(str1[i+7]<'A'||str1[i+7]>'Z'))){ 
                str1[i]='I';                        /*判断can you是否独立(“独立”是指被空格或标点符号分隔开的单词)*/ 
                str1[i+1]=' ';
                str1[i+2]='c';
                str1[i+3]='a';
                str1[i+4]='n';
                str1[i+5]='8';
                str1[i+6]='8';
                i+=7;                             /*减少判断量,从can you后的字符继续判断*/ 
                continue;
            }
        }
        /*判断是否为could you*/
        if(str1[i]=='c'&&str1[i+1]=='o'&&str1[i+2]=='u'&&str1[i+3]=='l'&&str1[i+4]=='d'&&str1[i+5]==' '&&str1[i+6]=='y'&&str1[i+7]=='o'&&str1[i+8]=='u'){
            if(((str1[i-1]<'a'||str1[i-1]>'z')&&(str1[i-1]<'A'||str1[i-1]>'Z'))&&((str1[i+9]<'a'||str1[i+9]>'z')&&(str1[i+9]<'A'||str1[i+9]>'Z'))){
                str1[i]='I';                        /*判断could you是否独立(“独立”是指被空格或标点符号分隔开的单词)*/
                str1[i+1]=' ';
                str1[i+2]='c';
                str1[i+3]='o';
                str1[i+4]='u';
                str1[i+5]='l';
                str1[i+6]='d';
                str1[i+7]='8';
                str1[i+8]='8';
                i+=7;                             /*减少判断量,从could you后的字符继续判断*/
                continue;
            }
        }
         /*判断I是否独立(“独立”是指被空格或标点符号分隔开的单词)*/
        if(str1[i]=='I'&&((str1[i-1]<'a'||str1[i-1]>'z')&&(str1[i-1]<'A'||str1[i-1]>'Z'))&&((str1[i+1]<'a'||str1[i+1]>'z')&&(str1[i+1]<'A'||str1[i+1]>'Z'))){
            str1[i]='7';
        }
         /*判断me是否独立(“独立”是指被空格或标点符号分隔开的单词)*/
        if((str1[i]=='m'&&str1[i+1]=='e')&&((str1[i-1]<'a'||str1[i-1]>'z')&&(str1[i-1]<'A'||str1[i-1]>'Z'))&&((str1[i+2]<'a'||str1[i+2]>'z')&&(str1[i+2]<'A'||str1[i+2]>'Z'))){
            str1[i]='5';
            str1[i+1]='6';
            i++;
        }
        i++;
    }
    /*输出改变后的字符串,'8'转义为空,('5''6')转义为you,'7'转义为you*/ 
    printf("%s\nAI: ",str[b]);
    y=strlen(str1);
    for(i=0;i

点击俺返回目录

你可能感兴趣的:(天梯赛)