如何解决为什么此C ++程序不打印任何内容?
我有这个C ++程序,但是它在控制台中不打印任何内容。 我正在将字符串的内容复制到2个向量中,并对它们进行计数递增操作。
#include <iostream>
#include<vector>
#include<bits/stdc++.h>
#include<string>
using namespace std;
int main()
{
string s;
cin>>s;
int i,j;
vector<char> a;
vector<char> b;
int count1=0;
int count2=0;
int count3=0;
int t=s.length()/2;
for(i=0;i<t-1;t++)
{
a.push_back(s[i]);
}
for(j=t;j<s.length();j++)
{
b.push_back(s[j]);
}
int e1,e2;
for (auto it1 = a.begin(),it2 = b.begin();
it1 != a.end() && it2 != b.end();
++it1,++it2)
{
if(int(*it1)>int(*it2))
count1++;
if(int(*it1)<int(*it2))
count2++;
if(int(*it1)==int(*it2))
count3++;
}
cout<<min(min(count1,count2),count3);
}
我最后要打印三个计数中的最小值。
解决方法
我发现您的代码在下面陷入了无限循环。
for (i = 0; i < t - 1; t++) // not t++,but it should be i++
{
a.push_back(s[i]);
}
我还相信,调试技能可以帮助您在程序中发现错误。
,在插入cin>>s;
之后,程序将等待插入数据,在变量string s
上插入数据之后,但是在您的代码之后,它的目标似乎并不清楚,因为对于多个输入,您使用内部if的方法基本上什么都不会做,您的最初目标是什么?
在for中有一个循环。 将原始的块报价覆盖为:
int t=s.length()/2;
for(i=0;i<t-1;i++)
{
a.push_back(s[i]);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。