在调试此代码时,我注意到代码中提到的 sum 值往往会给出错误的结果。我不明白为什么会发生这种情况。
我的程序采用一个字符串计算其子字符串并计算所有子字符串中存在的元音数量,最后的总和值是同时所有元音计数的总和
我已经尝试过通过代码进行调试,但无法理解代码有什么问题
#include <iostream>
using namespace std;
int main()
{
long long int t,j,n,l,count=0,sum=0;
cin>>t;
string s;
//char i;
while(t>0)
{
l=0;
sum=0;
count=0;
cin >> s;
n= s.length();
for(j=0;j<n;j++)
{
if(s[j]=='a' || s[j]=='e' || s[j]=='i' || s[j]=='o' || s[j]=='u' || s[j]=='A'|| s[j]=='E' || s[j]=='I' ||s[j]=='O' || s[j]=='U')
{
count++;
l=j;
cout<<"l="<<j<<endl;
cout<<"j="<<j<<endl;
cout<<"n="<<n<<endl;
cout<<"n-1="<<n-1<<endl;
cout<<"j+1="<<j+1<<endl;
sum=sum+((n-l)*(j+1));
cout<<"SUM is="<<sum << endl;
}
}
if(l==0)
{
sum=0;
}
cout<<"Second part Sum="<<endl;
cout<<sum<<endl;
t--;
}
}
Run Code Online (Sandbox Code Playgroud)
程序编译并运行,没有错误消息。但是,由于 sum 的计算不正确,存在逻辑错误...... …