- 编程
比赛题目求解
- 2025-1-24 17:41:58 @
帮忙看下,有哪些要改 当前RE
#include<bits/stdc++.h>
using namespace std;
string s;
int n,i,x;
int main(){
cin>>n;
while(n!=0){
cin>>s;
reverse(s.begin(),s.end());
cout<<s<<" ";
if(s[s.size()]==("!"||"."||"?")) n--;
}
return 0;
}
2 条评论
-
[吴雨霖]chan 可爱! LV 9 (50/50) @ 2025-2-1 23:20:44
-
越界
在表达式s[s.size()]
中,s.size()
返回字符串的长度,而字符串的最后一个字符的下标应为s.size()-1
。 -
逆天表达式
表达式("!" || "." || "?")
并不能实现“如果等于 '!' 或者等于 '.' 或者等于 '?'”的功能。- 在 C++ 中,逻辑或运算符 (
||
) 用于布尔值之间的运算,而"!"
是字符串常量(实际情况中应该使用字符常量'!'
),因此表达式"!" || "."
会先将"!"
转换为指针,并判断是否为非零指针(通常为真),从而整个表达式总为真。 - 正确的做法是分开比较
if (s[s.size()-1] == '!' || s[s.size()-1] == '.' || s[s.size()-1] == '?')
- 在 C++ 中,逻辑或运算符 (
目前就看出来这么多
-
-
2025-1-27 10:47:38@
C4 算法期末测试第3题
- 1