【发布时间】:2016-10-24 18:07:54
【问题描述】:
我得到第一个进程 ID 名称的奇怪输出,不知道为什么。也许我告诉它打印 char 数组的方式?
代码如下:
int main(){
int a; //variable used for: total number of processes
int i,j,k,l; //used for loops
int t1; //temporary variables
int burst[10],ttime[10],wait[10];
char process_name[10][11]; // array for storing up to 10 strings, with each up to length of 10 characters
char process_name_temp[10][11]; //temp variable for process name
float wait_time,wait_time_avg;
/*Pre-Fill burst and wait arrays with times of 0*/
for(i=0;i<10;i++){
burst[i]=0;
wait[i]=0;
}
wait_time_avg = 0; //set the wait time average to zero
printf("Please Enter Total Number of Processes Desired\n"); //
scanf("%d",&a); //get input from user:total number of processes
/*get user input from user: burst time for each process, process name for each process*/
for(i=0;i<a;i++){
printf("Please Enter Process Name(one word)\n");
scanf("%s", &process_name[i][11]);
printf("Please Enter Burst Time\n");
scanf("%d", &burst[i]);
}
for(i=0;i<a;i++){
for(j=1;j<a;j++){
if(burst[i]>burst[j]){
t1 = burst[i];
process_name_temp[i][11] = process_name[i][11];
burst[i] = burst[j];
process_name[i][11] = process_name[j][11];
burst[j] = t1;
process_name[j][11] = process_name_temp[j][11];
}
}
wait[0] = 0;
for(i=0;i<a;i++)
wait[i+1] = wait[i] + burst[i];
for(i=0;i<a;i++){
//ttime[i] = wait[i] + burst[i];
wait_time_avg = 0;
wait_time = 0;
wait_time_avg = wait_time_avg + wait[i];
}
wait_time_avg = wait_time_avg/a;
printf("\n\t Process ID \t Waiting Time \t Burst Time \n");
for(i=0;i<a;i++)
printf("\t %s \t\t %d \t\t\t %d \n\n", process_name[i],wait[i],burst[i]);
printf("Waiting Time Average: %f \n", wait_time_avg);
}
返回 0;
}
如果有人可以帮助我,那就太好了。这可能是一个简单的修复——我错过或忽略了一些东西。谢谢!
【问题讨论】:
-
请勿发布文字图片!