杀猪!!(顺序表)

来源:互联网 发布:php时时彩票源码 编辑:程序博客网 时间:2024/05/21 05:43

1.题目:

 

Problem Description

一户人家养了一群猪(n头,编号1,2,3....n),每头猪都有自己初始体重w(double)和体重增长率x。每天猪的体重都会发生变化,是胖是瘦取决于体重增长率,体重增长率为负,变瘦,为正,变胖。(体重增长率:double,-0.2<x<0.2)。现在这户人家每天挑这群猪当中最胖的杀了,吃掉!!!编程,按先后被杀的顺序输出猪的编号。

 

Input

输入数据有多组,每组数据第一行为猪的头数n(0<n<=50)
第二行为n头猪的体重
第三行为n头猪的体重增长率

 

Output

按先后被杀的顺序输出猪的编号。
每组输出数据,输出一行
编号之间用逗号隔开

 

Sample Input

64 32 99 3 2 450.1 -0.15 0 -0.19 0.19 -0.04

 

Sample Output

3,6,2,1,5,4

 

 

 

2.参考代码:

 

#include <iostream>using namespace std;class SeqList{private:double x[100],y[100];int len;public:SeqList(double* a,double* b,int n);void cmp();};SeqList::SeqList(double* a,double* b,int n){for(int i=0;i<n;i++){x[i]=a[i];y[i]=b[i];}len=n;}void SeqList::cmp(){int i,j,m1=0,m2;for(i=0;i<len;i++)   ///先比较第一天的{if(x[m1]<x[i])m1=i;}cout<<m1+1;x[m1]=0;   ///比较完之后把最大的那个数赋值为0,下面也是这个道理for(i=1;i<len;i++){m2=0;for(j=0;j<len;j++)x[j]=x[j]*(1+y[j]);for(j=0;j<len;j++){if(x[m2]<x[j])m2=j;}cout<<","<<m2+1;x[m2]=0;}cout<<endl;}int main(){int i,n;double a[100],b[100];while(cin>>n){for(i=0;i<n;i++)cin>>a[i];for(i=0;i<n;i++)cin>>b[i];SeqList t(a,b,n);t.cmp();}return 0;}


 

 

 

原创粉丝点击