社区讨论
蒟蒻弄了两段自觉一样的代码,出现玄学结果
P1765手机参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi7dyv8g
- 此快照首次捕获于
- 2025/11/20 20:06 4 个月前
- 此快照最后确认于
- 2025/11/20 20:06 4 个月前
CPP
求大佬解释。。
读入:i see dead people
输出:31
问题:1,下面两段代码是否设置上一毛一样?
若不是,2,哪里不一样?
若是,2,为啥我把加粗的那句小于号改小于等于,上面的变34下面的不变?
3,第一段,我把
if(s[i]==' ')
sum++;删去,输出28,加上等号仍然是在原来的基础上加三,它好像一直自动给我加三,是什么原理?
```
#include
#include
using namespace std;
int main()
{
int ci,sum=0;
string s;
getline(cin,s);
for(int i=0;i<s.length();i++)
{
if(s[i]==' ')
sum++;
if(s[i]!=' ')
{
if(s[i]<=111)
{
ci=(s[i]-96)%3;
if(ci==0)
{
ci=3;
}
sum+=ci;
}
if(s[i]>111&&s[i]<=115)
{
ci=(s[i]-111)%4;
if(ci==0)
ci=4;
sum+=ci;
}
CPP if(s[i]<=118&&s[i]>=116)
{
ci=(s[i]-115)%3;
if (ci==0)
ci=3;
sum+=ci;
}
if(s[i]>118&&s[i]<=122)
{
ci=(s[i]-118)%4;
if(ci==0)
{
ci=4;
cout<<ci;
}
sum+=ci;
}
}
}
cout<<sum<<endl;
}
CPP
#include
#include
using namespace std;
int main()
{
int ci,sum=0;
string s;
getline(cin,s);
** for(int i=0;i<s.length();i++)**
{
if(s[i]==' ')
sum++;
if('a'<=s[i]&&s[i]<=111)
{
ci=(s[i]-96)%3;
if(ci==0)
{
ci=3;
}
sum+=ci;
}
if(s[i]>111&&s[i]<=115)
{
ci=(s[i]-111)%4;
if(ci==0)
ci=4;
sum+=ci;
}
if(s[i]<=118&&s[i]>=116)
{
ci=(s[i]-115)%3;
if (ci==0)
ci=3;
sum+=ci;
}
if(s[i]>118&&s[i]<=122)
{
ci=(s[i]-118)%4;
if(ci==0)
{
ci=4;
}
sum+=ci;
}
}
cout<<sum<<endl;
}
CPP回复
共 5 条回复,欢迎继续交流。
正在加载回复...