【发布时间】:2017-08-14 17:39:53
【问题描述】:
#include <iostream>
float x[10], k;
int n, i;
cout<<"N= "; cin>>n;
for (i=0; i<n; i++){
cout<<"x["<<i<<"]= ";
cin>>x[i];
}
cout<<"Array's elements: ";
for (i=0; i<n; i++)
cout<<x[i]<<", ";
cout<<endl<<"K= "; cin>>k;
for(i=0; i<n; i++)
if(x[i]!=k){
cout<<endl<<"K doesn't exist in array.";
cout<<endl<<"K= "; cin>>k;
}
我正在尝试查找数组中是否存在一个元素,如果它不存在,我想重新输入该元素并重复整个数组并检查它。 我的从一开始就没有得到它(i = 0)。
【问题讨论】:
-
这很明显。仅检查第一个元素后,您不能声明该元素不在数组中。
-
您写的是检查 所有 元素是否是您要查找的元素。如果你不想使用标准算法(你真的应该使用标准算法),你需要使用一个标志来查看它们是否匹配。
-
为了避免找到匹配时标志从循环中中断,所以 i 仍然在索引位置。然后测试是否 i
-
你觉得这种用学校学的数组的写法怎么样?它是好的还是我需要改进或者我可以简化它?