pascal 问题……

[复制链接]
查看11 | 回复4 | 2011-8-19 07:20:25 | 显示全部楼层 |阅读模式
有n个人排队在一个水笼头前接水,每个人的接水时间互不相等。找出一种n个人排队接水的顺序,使他们平均等待的时间最短。输入:第一行:n(100).第二行:依次为n个人的接水时间。输出:第一行:所有人的平均等待时间。第二行:接水的顺序。样例:输入:526138输出:8.4031425啊啊啊啊碍…排完顺序序号早不一样了……怎么输出序号啊!!!!!!!!求完整答案……
回复

使用道具 举报

千问 | 2011-8-19 07:20:25 | 显示全部楼层
比如说本来是A数组你再弄一个B数组,存序号排序时,A数组交换时,B也一起交换即可追问可以完整的答案么……有Q么……
回复

使用道具 举报

千问 | 2011-8-19 07:20:25 | 显示全部楼层
我是写C的P语不习惯了将就着看吧,刚刚打的#includeiostream#includealgorithmclassStudent{public:intname,time;};intcheck(constStudentb.time))return0;elsereturn1;}intmain(){intn,time;doubletot=0;Studenta[301];std::cinn;for(inti=1;i=n;i){a.name=i;std::cintime;a.time=time;}std::sort(a1,an1,check);for(inti=1;i=n;i)tot=a.time*(n-i1);std::couttot/nstd::endl;for(inti=1;in;i)std::couta.name\"\";std::couta[n].namestd::endl;return0;}
回复

使用道具 举报

千问 | 2011-8-19 07:20:25 | 显示全部楼层
表示你给我看这个我肿么看的懂碍…看不懂看不懂……呜呜……算了……坐等其它答案吧……
回复

使用道具 举报

千问 | 2011-8-19 07:20:25 | 显示全部楼层
A数组时间B数组序号(初始b=i)A数组从大到小排序(比如a要和a[j]换,那么把b和b[j]也交换)然后输出所有人的平均等待时间(a[1]*1a[2]*2……a[n]*n)/n最后输出b[n]b[n-1]……b[1]这下总可以了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行