随机更改变量
Randomly changing variable
我试图在数组中查找 int 的实例,然后打印出该 int 的索引。问题是我用来存储我正在检查的数字的变量在输入中间不断变化。
int num, size;
int arr[size];
cin >> num >> size;
for (int i = 0; i < size; i++){
cin >> arr[i];
}
for (int i = 0; i < size; i++){
if (arr[i] == num){
cout << i << endl;
return 0;
}
}
return 0;
输入是这样的:
23
12
1 3 5 7 9 11 13 15 17 19 21 23
在输入数组 arr 时,当分配 arr[6] 时,变量 num 将变为 13。是什么导致变量切换?
有一件事非常错误,另一个问题是C++合规性。
这两行:
int num, size;
int arr[size]; // wrong.
您正在初始化值为 size
的数组。 但是size
的价值是什么? 它尚未设置,因此它将是一些随机值。 也许会是6,100,0,843241,-342,你不知道。
此外,假设您在声明数组之前确实正确设置了size
。 使用变量声明数组不是标准C++。 数组必须使用常量表达式声明。
如果希望程序既正确又标准C++,请使用 std::vector
。
#include <vector>
#include <iostream>
using namespace std;
int main()
{
int num, size;
cin >> num >> size;
std::vector<int> arr(size);
for (int i = 0; i < size; i++)
cin >> arr[i];
for (int i = 0; i < size; i++)
{
if (arr[i] == num)
{
cout << i << endl;
return 0;
}
}
}
int num, size;
int arr[size];
cin >> num >> size;
在阅读之前,您不能使用大小值...
int num, size;
cin >> num >> size;
int arr[size];
相关文章:
- 变量没有改变?通过向量的函数调用
- 在向量内更改变量的值不会改变其在向量外的值
- C++11:具有互斥锁的线程看到原子变量的值发生变化,尽管这是唯一可以改变它的代码
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 标准在哪里定义了可变变量可以改变
- C++11:可变的 lambda 似乎没有改变变量?
- printf() 似乎改变了一个变量
- 为什么我的变量在单独的线程中修改时没有改变?C++/boost
- 为什么 Player.x 和 Player.y 变量没有改变?
- C - 如何将各处的静态函数称为改变其私有变量
- 即使"friend class rect"在平方类中被评论,为什么它要改变矩形类的私有变量?
- 为什么调用 CUDA 内核函数时这个类成员变量没有改变
- 全局变量的顺序会改变C /OpenGL的性能
- 为什么一个函数的末尾有常量这个词,即使它确实改变了一个变量
- 如何在C++中改变超类和子类的变量
- 为什么变量不会改变
- 变量的范围大于for循环,为什么它不改变值
- 变量似乎在自行改变值
- 在一个case中改变switch变量
- 当赋值给变量时,数字改变值