gpt4 book ai didi

c - FCFS 调度代码中的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:50 24 4
gpt4 key购买 nike

我正在为 FCFS 调度编写这段代码。但在 Linux 中,这是给“段错误”。如何纠正这样的错误?

 #include<stdio.h>
#include<string.h>
float fxn();

int main()
{

float avgwt;
int n,i,at[10],bt[10];
printf("\n\nEnter the number of processes:");
scanf("%d",&n);
printf("\n\n BURST TIME and ARRIVAL TIME of thr process");
for(i=0;i<n;i++)
{
printf("\n ARRIVAL TIME :");
scanf("%d",&at[i]);
printf(" BURST TIME : ");
scanf("%d",&bt[i]);
}

avgwt=fxn(at,bt,n);

printf("\n\nAverage waiting time=%f",avgwt);
return 0;

}



float fxn( int at[], int bt[], int n)

{

int i,j,t,wt[n],sum,tt[n],q;

float avgwt;


for(j=i+1;j<n;j++)
{
if(at[i]>at[j])

{
t=at[i];
at[i]=at[j];
at[j]=t;
q=bt[i];
bt[i]=bt[j];
bt[j]=q;
}
}


wt[0]=0;


for(i=0;i<n;i++)
{

wt[i+1]=wt[i]+bt[i];
sum=sum+(wt[i+1]-at[i]);

}

avgwt=sum/n;

return avgwt;


}

另一个问题 ---- 我将编辑此代码以在 linux 中进行系统调用。

如果 c 程序将从用户那里获取输入并将其传递给内核以进行进一步计算,那么传递数组是否有效?

(例如 - 这里的 main() 函数用于将输入和 fxn() 函数带入内核

最佳答案

下面有缓冲区溢出

for(i=0;i<n;i++)
{

wt[i+1]=wt[i]+bt[i];
sum=sum+(wt[i+1]-at[i]);
}

应该是i < n -1您还需要初始化 i=0在函数中 fxn

关于c - FCFS 调度代码中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com