int findminjob(job jobs[],int count) { int minjob=-1;//=jobs[0].need_time; int minloc=-1; for(int i=0;i<count;i++) { if(minloc==-1){ if( jobs[i].isreached==true && jobs[i].visited==0){ minjob=jobs[i].need_time; minloc=i; } } else if(minjob>jobs[i].need_time&&jobs[i].visited==0&&jobs[i].isreached==true) { minjob=jobs[i].need_time; minloc=i; } } return minloc; }解释代码
时间: 2024-04-04 09:30:37 浏览: 87
这段代码是一个函数,函数名为`findminjob`,它接收两个参数:一个是类型为`job`的数组`jobs`,另一个是整型变量`count`,表示数组中元素的个数。函数的返回值是一个整型变量。
函数的作用是在`jobs`数组中找到一个还未被访问过的任务,并且该任务需要的时间最少。具体实现如下:
首先,定义了两个变量`minjob`和`minloc`,分别表示需要时间最少的任务的下标和需要的时间。
然后,使用一个`for`循环遍历整个数组,对于每个任务,如果`minloc`的值为-1,说明还没有找到未被访问过的任务,那么就判断当前任务是否被访问过且已经到达,如果是,则将当前任务的需要时间和下标分别赋值给`minjob`和`minloc`。如果`minloc`的值不为-1,说明已经找到一个未被访问过的任务,那么就比较当前任务的需要时间和`minjob`的值,如果当前任务需要时间更少,就将当前任务的需要时间和下标分别赋值给`minjob`和`minloc`。
最后,返回`minloc`的值,即需要时间最少的未被访问过的任务在数组中的下标。
阅读全文