我必须检查数组的所有元素是否都等于 1.并将其用作一段时间的条件..我该怎么做
I have to check whether all the elements of an array is equal to one or not...and use it as a while condition...how do i do that?
我有一个数组....我需要检查它的所有元素是否都等于 1,并将其作为 while 条件传递。那是。。。我的代码应该被执行,直到数组的所有成员都变成一个。我的代码是这样的:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int ele[10];int crd[10];int dist[10] ; int fid[10] ;
int a; int i ; int j;int k = 0,l=0 ; // a is number of villages
cin>> a ;
for(i = 0;i<a;i++){
cin>>ele[i] ;
}
for(i=0;i<a;i++){
cin>>crd[i] ;
}
for(k = 0;k<a;k++){
while(ele[k]= 1){
for(i=0;i<a;i++){
if(ele[i] == 0 && ele[i+1] == 1 ){
dist[l] = std::abs(crd[i+1] - crd[i]) ;
fid[l] = i ;
l++ ;
}else if(ele[i]==1 && ele[i+1] == 0 ){
dist[l] = std::abs(crd[i+1] - crd[i]) ;
fid[l] = i + 1;
l++ ;
// ele[i+1] = 1
}
}
for(i=0;i<l;i++){
cout<<fid[i] ;
}
for(i=0;i<l;i++){
cout<<dist[i]<<" " ;
}
for(i=0;i<l;i++){
if(dist[0]>dist[i]){
swap(dist[0],dist[i]) ;
ele[fid[i]] = 1 ;
//swap()
}else if(l=1){
ele[fid[0]] = 1 ;
}
}
for(i=0;i<a;i++){
cout<<ele[i]<<endl ;
}
cout<<dist[0] ;
}
}
}
错误在于此语句。
while(ele[k]= 1)
它将始终返回 true,因为 ele[k] 被分配的值 1 不是 0,导致无限循环。也没有必要包含这么多的 for 循环和 while 循环。您的状况应该是这样的:
k=0;
while(k < a)
{
ele[k] = 1;
k++;
}
而且根本不需要任何 for 循环。您的问题与您编写的代码不匹配。如果确实如此,你的意思是简单地用 1 替换 ele[k] 的所有值,我提供的上述代码应该足够了,并且你的代码中不会使用任何其他语句。首先,我认为您应该在循环中学习并了解它们本质上是如何工作的。此外,无论错误在什么代码中,您都不应该发布无格式的代码。
相关文章:
- 在做一段时间内检查字符的无限循环
- ExtTextOut 文本的持续闪烁,在一段时间后,文本将恢复为默认字体
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- ::grpc::ServerReaderWriter 对象在另一个线程中一段时间后无法调用
- 一段时间后 CPU 使用率高
- 有没有办法在一段时间后将流程从流出中分离出来
- 在一段时间内更改标签文本
- 布尔函数在一段时间内不起作用
- 解决PNP在一段时间后返回坏的rvec和tvec
- 相机的旋转方向在一段时间后反转
- boost::asio::d eadline_timer 1ms 滞后一段时间
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 您可以在一段时间内迭代向量
- 列表STL的时间复杂性在一段时间内进行排序
- 我的开关菜单在一段时间循环中出现问题
- 如何在一段时间内更新 QLabel?
- 我可以在开关(消息)语句的同时运行一段时间吗?(C )
- 在线程中等待一段时间,或者直到条件发生
- 你如何做一个 for 循环作为一段时间的条件
- 我必须检查数组的所有元素是否都等于 1.并将其用作一段时间的条件..我该怎么做