|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:
本题要求你做一个简单的自动问答机,对任何一个问句,只要其中包含 PTA 就
回答 Yes!,其他一概回答 No.。
输入格式:
输入第一行给出一个整型范围内的正整数 N,随后 N 行,每行给出一个长度不
超过 80 的字符串,为用户输入的句子,由英文字母、数字、空格和标点符号组
成,以回车结束。
输出格式:
对每一行句子,如果其结尾字符为问号 ? 则判断此句中有无 PTA?如果有则在
一行中输出 Yes!,否则输出 No.。如果不是问号结尾,则敷衍地回答 enen。
输入样例:
5
Hello!
Do you still play WZRY?
Chi Ji?
you play PTA ah?
how about pta site?
输出样例
enen
No.
No.
Yes!
No.
解:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,count,x,len,y;
scanf("%d",&n);
char arr[n][100],arr1[100];
for(i=0;i<n;i++)
{
fgets(arr[i],sizeof(arr[i]),stdin);
arr1[i]=strlen(arr[i])-1;
}
for(i=0;i<n;i++)
{
count=0;
if(arr[i][arr1[i]]!='?')
{
printf("enen\n");
}
else if(arr[i][arr1[i]]=='?')
{
for(x=0;x<arr1[i];x++)
{
if(arr[i][x]=='P'||'T'||'A')
{
count++;
}
}
if(count==3)
{
printf("Yes!\n");
}
else
{
printf("No.\n");
}
}
}
return 0;
}
有什么问题?
抱歉,之前提供的代码有误。这里是正确的代码:
- #include <stdio.h>
- #include <string.h>
- int main() {
- int n;
- scanf("%d", &n);
- getchar(); // 清除缓冲区中的换行符
- char results[100][5]; // 用于存储结果,每个结果最长 "Yes!" 或 "No."(4个字符,加1留给 '\0')
- for (int i = 0; i < n; i++) {
- char sentence[81];
- fgets(sentence, 81, stdin);
- // 去掉句子末尾的换行符
- sentence[strcspn(sentence, "\n")] = '\0';
- int len = strlen(sentence);
- if (sentence[len - 1] == '?') {
- if (strstr(sentence, "PTA") != NULL) {
- strcpy(results[i], "Yes!");
- } else {
- strcpy(results[i], "No.");
- }
- } else {
- strcpy(results[i], "enen");
- }
- }
- // 统一输出所有结果
- for (int i = 0; i < n; i++) {
- printf("%s\n", results[i]);
- }
- return 0;
- }
复制代码
这个版本应该会正确处理每一行并给出符合题目要求的结果:
- 每个符合条件的句子都会根据结尾和内容检查,并存储在 `results` 数组中。
- 在循环结束后,统一输出结果。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|