看书上有个例子,但跳不出循环 不能继续执行。请问下列数组和模板的解决方法
问题比较菜 大家多包涵数组
#include "iostream.h"
int main()
{
int input=0;
int count=0;
bool flags;
int array[5];
cout<<"enter a number!"<<endl;
for(int i=0;i<6;++i)
{
cin>>input;
array[++count]=input;
if (i>=5)
break;
}
//为什么后面执行不了 总是继续循环 怎样改?
int sum;
for(int j;j<6;j++)
{
sum+=array[j];
}
return 0;
}模板
#include "vector"
using namespace std;
int main()
{
vector<int> number;
int z;
while (cin>>z)
{
number.push_back(z);
}
//为什么后面执行不了
int y;
for(int i=0;i<number.size();++i)
{
y+=number[i];
}
cout<<y<<endl; return 0;
}
问题比较菜 大家多包涵数组
#include "iostream.h"
int main()
{
int input=0;
int count=0;
bool flags;
int array[5];
cout<<"enter a number!"<<endl;
for(int i=0;i<6;++i)
{
cin>>input;
array[++count]=input;
if (i>=5)
break;
}
//为什么后面执行不了 总是继续循环 怎样改?
int sum;
for(int j;j<6;j++)
{
sum+=array[j];
}
return 0;
}模板
#include "vector"
using namespace std;
int main()
{
vector<int> number;
int z;
while (cin>>z)
{
number.push_back(z);
}
//为什么后面执行不了
int y;
for(int i=0;i<number.size();++i)
{
y+=number[i];
}
cout<<y<<endl; return 0;
}
{
sum+=array[j];
}
return 0;
该句始终在等终端输入
即使你输入一次,循环回来还是在等待输入
自然无法向后执行
{
number.push_back(z);
}
各位请多援手了!那应当怎样改呢?
int main()
{
int input=0;
int count=0;
bool flags;
int array[5];
cout<<"enter a number!"<<endl;
for(int i=0;i<6;++i)
{
cin>>input;
array[++count]=input; //** i==4时. 本句实际为: array[5] = input. 已经越界. 这个时候实际上会把 input 的值赋给i, 因为i就是紧接着array定义的一个变量,当然也不一定如此,不同的编译器可能会有不同的解释, 很多情况下数组越界这种错误, 其操作是未定义的(不可知的).
if (i>=5)
break;
}
//为什么后面执行不了 总是继续循环 怎样改?
int sum;
for(int j;j<6;j++)
{
sum+=array[j];
}
return 0;
}模板
#include "vector"
using namespace std;
int main()
{
vector<int> number;
int z;
while (cin>>z) // 也许你以为 cin>>z 会返回你输入的那个值, 实际并非如此, 它返回的是一个ostream&, 所以你肯定得不到期望的执行结果.
{
number.push_back(z);
}
//为什么后面执行不了
int y;
for(int i=0;i<number.size();++i)
{
y+=number[i];
}
cout<<y<<endl; return 0;
}