给定代码的输出应该是数组中元素的索引号,但是我没有得到预期的输出。
这是我的代码:
int main() {
int n, a, b;
int arr[100];
cout << "Enter the size of array";
cin >> n;
cout << "Enter the number to find";
cin >> a;
cout << "Enter elements in array";
for (int i = 0; i < n; i++)
cin >> arr[n];
for (int i = 0; i < n; i++) {
if (arr[n] == a) {
cout << n;
} else
n++;
}
return 0;
}
答案 0 :(得分:3)
这里:
if(arr[n]==a)
您需要使用i
:
if(arr[i]==a)
完整的else
情况是多余的;去掉它。另外,您必须确保n <= 100
,否则您有安全漏洞(缓冲区溢出)。
对于数组索引,请使用std::size_t
而不是int
。
答案 1 :(得分:2)
您使用'n;作为数组索引以获取输入并匹配搜索元素。应该是“ i”而不是“ n”。
#include <iostream>
using namespace std;
int main()
{
int n,a,b;
int arr[100];
cout<<"Enter the size of array";
cin>>n;
cout<<"Enter the number to find";
cin>>a;
cout<<"Enter elements in array";
for(int i=0;i<n;i++)
cin>>arr[i];
for(int i=0;i<n;i++){
if(arr[i]==a)
{
cout<<i<< "";
}
}
return 0;
}
答案 2 :(得分:0)
@Erlkoenig所说:
“您需要使用i:
result = []
for i in range(9):
total = 0
for key,value in percent.items():
# On each iteration, it selects the `ith` element from each list and adds to `total` variable.
total += value[i]
result.append(total)
完整的else情况是多余的;去掉它。另外,您必须确保n <= 100,否则您有安全漏洞(缓冲区溢出)。将if(arr[i]==a)
中的std::size_t instead
用于数组索引。“
此外,int
可能会给您一个分段错误(不依赖于起始n以及您将如何快速找到“要查找的数字”。我很确定,如果数字不在数组中,会出现结皮错误。