读书人

求解啊三个不同的函数为什么输出全一样

发布时间: 2012-05-13 16:39:43 作者: rapoo

求解啊,三个不同的函数为什么输出全一样啊
[code=C#][/code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

public struct time1
{
public float atime;
public float rtime;
public float ftime;
public float ttime;
public float wtime;
public string name;
};

namespace WindowsFormsApplication1
{

public partial class Form1 : Form
{


public Form1()
{
InitializeComponent();

}
time1[] p = new time1[5];
float[] ff = new float[6];
int i;


void sort(time1[] p)
{
for (int i = 0; i <= 4; i++)
for (int j = 0; j <= i; j++)
if (p[i].atime < p[j].atime)
{
time1 temp;
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}




void deal(time1[] p,float totalTimeSum,float weightTotalTimeSum)
{
int k=0;
for(k=0;k<=4;k++)
{
if(k==0)
p[k].ftime=p[k].atime+p[k].rtime;
else
p[k].ftime=p[k-1].ftime+p[k].rtime;
}

for(k=0;k<=4;k++)
{
p[k].ttime=p[k].ftime-p[k].atime;
p[k].wtime=p[k].ttime/p[k].rtime;
totalTimeSum+=p[k].ttime;
weightTotalTimeSum+=p[k].wtime;
}
}




void FCFS(ref time1[] p)
{
float totalTimeSum = 0, weightTotalTimeSum = 0;
sort(p);
deal(p,totalTimeSum,weightTotalTimeSum);
}


void SWF(ref time1[] p)
{
float totalTimeSum = 0, weightTotalTimeSum = 0;
sort(p);
for(int m=0;m<4;m++)
{
if(m==0)
p[m].ftime=p[m].atime+p[m].rtime;
else
p[m].ftime=p[m-1].ftime+p[m].rtime;
int i=0;
for(int n=m+1;n<=4;n++)
{
if(p[n].atime<=p[m].ftime)
i++;
}
float min=p[m+1].rtime;
int follow=m+1;
for(int k=m+1;k<m+i;k++)
{

if(p[k+1].rtime<min)
{min=p[k+1].rtime;
follow=k+1;}

}
time1 temp;
temp=p[m+1];
p[m+1]=p[follow];
p[follow]=temp;
}
deal(p,totalTimeSum,weightTotalTimeSum);

}


void TRRF(ref time1[] p)
{
float totalTimeSum = 0, weightTotalTimeSum = 0;


sort(p);
for(int m=0;m<4;m++)
{
if(m==0)
p[m].ftime=p[m].atime+p[m].rtime;
else
p[m].ftime=p[m-1].ftime+p[m].rtime;
int i=0;
for(int n=m+1;n<=4;n++)
{
if(p[n].atime<=p[m].ftime)
i++;
}
float max=(p[m].ftime-p[m+1].atime)/p[m+1].rtime;
int follow=m+1;
for(int k=m+1;k<m+i;k++)
{
if(max<=(p[m].ftime-p[k+1].atime)/p[k+1].rtime){
max=(p[m].ftime-p[k+1].atime)/p[k+1].rtime;
follow=k+1;
}
}
time1 temp;
temp=p[m+1];
p[m+1]=p[follow];
p[follow]=temp;
}
deal(p,totalTimeSum,weightTotalTimeSum);
}

我新手,没学过这语言,方法很笨

[解决办法]

探讨

我就郁闷了 难道c#可以不用代码就运行啊
什么叫c#当c用

读书人网 >C#

热点推荐