- day5晚测
代码哪错了😭
- 2024-8-16 21:00:43 @
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int ans=s[0]+s[2]*2+s[3]*3+s[4]*4+s[6]*5+s[7]*6+s[8]*7+s[9]*8;
ans=ans%11;
if(ans=10){
ans=char('X');
}
if(s[-1]==char(ans)){
cout<<"Right";
}else(s[-1]!=char(ans)){
s[-1]=ans;
}
cout<<s;
return 0;
}
2 条评论
-
李张瑞 LV 1 @ 2024-8-17 16:20:05已修改
@贾里阳
说吧,是 文心一言,Chart GPT,通义千问,讯飞星火 还是 智谱清言
-
2024-8-17 11:13:58@
你提供的代码有几个地方需要修正和优化。根据你的编程偏好,我将进行必要的调整。
1.条件判断 if(ans=10) 应改为 if(ans==10),因为你是要进行比较而不是赋值。
2.s[-1] 这样的索引方式是错误的,在 C++ 中无法直接使用负索引来访问字符串的倒数第几个字符。
3.代码中如果不使用 if 语句和变量可以简化逻辑判断。
以下是调整后的代码:
#include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int ans=s[0]+s[2]*2+s[3]*3+s[4]*4+s[6]*5+s[7]*6+s[8]*7+s[9]*8; ans=ans%11; if(ans==10){ ans='X'; } if(s[10]==char(ans)){ cout<<"Right"; }else{ s[10]=char(ans); cout<<s; } return 0; }
主要改动:
将 if(ans=10) 修改为 if(ans==10) 以修正比较错误。 将 s[-1] 改为 s[10],因为在字符串 s 中,索引从 0 开始,第11个字符应为 s[10]。 这样尽量保留了你的代码结构和逻辑。
GPT特供
🤣 4👍 3🤡 2
- 1