专家,这是我用C语言为First Come First Serve Scheduling制作的程序。
对于像 - 的输入40 0 0 01 2 3 4
和输入像 -五0 1 2 3 44 3 1 2 5
我的节目是……
这里:
int priority[n],min=at_copy[0],k,j; for(j=0;j<n;j++){ min=at_copy[0]; for(i=0;i<n;i++){ if(at_copy[i]<min){ min=at_copy[i]; k=i; } } at_copy[k]=999; ...
想象一下,什么时候会发生什么 at_copy[0] 是最小的价值。然后,条件 atcopy[i]<min 永远不会是真的,k仍未初始化,导致访问越界:
at_copy[0]
atcopy[i]<min
at_copy[k]=999;
你必须初始化k 0 ,因为你假设在第一次迭代中,那 at_copy[0] 是最低限度的。
0
int priority[n],min=at_copy[0],k=0,j;
使用Geeks-IDE,您可能已经“幸运”而k的值为0而未进行初始化。