#include<stdio.h>
#include <limits.h>
#include <stdbool.h>
int main(int argc,char* argv[])
{
int n=4;
int bt[4];
bt[0]=6;
bt[1]=8;
bt[2]=7;
bt[3]=3;
int at[4];
at[0]=1;
at[1]=1;
at[2]=2;
at[3]=3;
int shortest=INT_MIN;
int minm= INT_MAX;
int t=0;
bool check= false;
int complete=0;
while(complete!=n)
{
for(int i=0; i<4; i++)
{
if(bt[i] > 0 && bt[i] < minm && at[i] <= t)
{
shortest=i;
minm= bt[i];
check=true;
}
}
if(check=false)
{
t++;
continue;
}
bt[shortest]--;
minm= bt[shortest];
if(minm=0)
{
minm=INT_MAX;
}
if(bt[shortest]=0)
{
complete++;
check=false;
}
t++;
}
return 0;
}
这是最短流程下一个算法的代码。我尝试在c#中运行该程序,效果很好,但是当我在Linux中使用c语法实现该算法时,它给了我一个分段故障-核心转储错误。 有人可以帮忙解决这个问题吗?