为什么没有运行这一步?

okdavinci 2005-07-15 09:53:48
#include<iostream>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;


template<class T>
int ni_serials(vector<T>&vt)
{

int sum=0;
vector<int> vi;
vi.push_back(0);
for(int i=1;i!=vt.size();i++)
{
int count=0;
for(int j=0;j=!i;j++)
{
if(vt[j]>vt[i])//为什么这一步没有执行????
count++;
}
vi.push_back(count);
}
for(int i=0;i<vi.size();i++)
{
cout<<vi[i]<<endl;
sum=sum+vi[i];
}
return sum;

}


int main()
{
vector<int> vt;
vt.push_back(2);
vt.push_back(3);
vt.push_back(1);
vt.push_back(5);

cout<<ni_serials(vt)<<endl;;

}

问题在注释中。
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
calabash_b 2005-07-15
  • 打赏
  • 举报
回复
同意楼上的.
okdavinci 2005-07-15
  • 打赏
  • 举报
回复
看出来了。郁闷哦
Leopard79 2005-07-15
  • 打赏
  • 举报
回复
上面如果写成j=!i的话,因为i>0的,所以!i=0,最后j = 0了,条件为零当然不执行了阿
Leopard79 2005-07-15
  • 打赏
  • 举报
回复
for(int j=0;j=!i;j++) =======> j=!i :这是复制操作阿!你想写成j!=i ?
{
if(vt[j]>vt[i])//为什么这一步没有执行????
count++;
}
okdavinci 2005-07-15
  • 打赏
  • 举报
回复
循环条件没有错哦?错在哪里?
calabash_b 2005-07-15
  • 打赏
  • 举报
回复
这种错误属于逻辑错误.下回多小心.不然要调试好多次才能发现的.
calabash_b 2005-07-15
  • 打赏
  • 举报
回复
把你循环的条件改一下就可以了

for(int j=0;j<i;j++)
{
if(vt[j]>vt[i])//为什么这一步没有执行????
count++;
}

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧