我被要求做先到先得的服务安排计划。我破解了代码,程序运行正常。但是我在表格列中显示它有问题。
我希望它显示如下:
Pr AT ST WT TAT RR
--------------------------
A 0 3 0 3 1
B 2 6 1 7 1.16
C 4 4 5 9 2.25
D 6 5 7 12 2.4
E 8 2 10 12 6
Average Response Ratio is 2.56
但我得到的是这样的:
输入名称,到达时间和服务时间的输入后,等待时间,周转时间和响应比率出现在下一行。我希望所有的东西都出现在同一条线上。
谁能告诉我哪里出错了?这是我的代码:
//First Come First Serve Scheduling
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int at[5],st[5],tt=0,wt=0,tr=0;
char name[5];
float res,tres;
clrscr();
cout<<"\n\tName \tAT \tST \tWT \tTAT \tRR";
for(int i=0;i<5;i++)
{
cout<<"\n\t";
cin>>name[i];
cout<<"\t";
cin>>at[i];
cout<<"\t";
cin>>st[i];
wt = tr - at[i];
cout<<"\t\t"<<wt;
tt = wt + st[i];
cout<<"\t"<<tt;
tr+=st[i];
res=(float)tt/st[i];
tres+=(float)res;
cout<<"\t"<<res;
}
cout<<"\nAverage response ratio is: "<<tres/5;
getch();
}
任何帮助都会非常好。谢谢你们。
答案 0 :(得分:1)
新行不是由C ++程序处理的,在Windows平台上,您可以尝试Windows Console APIs或诅咒库(例如ncurse)来改变光标的位置。或者您可以编写自己的函数来处理输入。在这种情况下,你应该放弃std:cin。