7-4 sdut-C 语言实验-排队接水问题

简介: 7-4 sdut-C 语言实验-排队接水问题

7-4 sdut-C 语言实验-排队接水问题


分数 12


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


山东理工大学有一个水房,有n名同学在一个水龙头前排队接水,假如每名同学接水的时间为Ti,请编程找出这n名同学排队的一种顺序,使得n名同学的平均等待时间最小。

输入格式:

共两行,第一行为n(1≤n≤1000);第二行分别表示第1名同学到第n名同学每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。

输出格式:

有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。


输入样例:

在这里给出一组输入。例如:

1. 10
2. 56 12 1 99 1000 234 33 55 99 812

输出样例:

在这里给出相应的输出。例如:

1. 3 2 7 8 1 4 9 6 10 5
2. 291.90


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include<stdio.h>
struct node
{
    int b;
    int num;
}a[1000],t;
int main()
{
    int n,i,j;
    scanf("%d",&n);
 
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i].b);
        a[i].num=i+1;
    }
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-i-1;j++)
        {
            if(a[j].b>a[j+1].b)
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    double sum=0;
    int m=n;
    for(i=0;i<n;i++)
    {
        sum+=a[i].b*(m-1);
        m--;
    }
    sum=sum/n;
    for(i=0;i<n;i++)
    {
        if(i==n-1)
        {
            printf("%d\n",a[i].num);
        }
       else{
           printf("%d ",a[i].num);//max
       }
    }
    printf("%.2f\n",sum);
    return 0;
}
目录
相关文章
|
4月前
7-3 sdut-C语言实验-活动选择问题(1)
7-3 sdut-C语言实验-活动选择问题(1)
20 3
|
4月前
|
存储 人工智能 算法
7-1 sdut-C语言实验-活动选择
7-1 sdut-C语言实验-活动选择
24 1
|
4月前
7-3 sdut-C语言实验-王奶奶分茶叶蛋
7-3 sdut-C语言实验-王奶奶分茶叶蛋
22 0
|
4月前
7-3 sdut-C语言实验-活动选择
7-3 sdut-C语言实验-活动选择
23 0
|
4月前
|
机器学习/深度学习
7-6 sdut-C语言实验-第X大的数
7-6 sdut-C语言实验-第X大的数
27 0
|
4月前
7-5 sdut-C语言实验-第k小的数
7-5 sdut-C语言实验-第k小的数
25 0
|
4月前
sdut 实验3.9---------7-9 sdut-C语言实验-蟠桃记 分数 20
sdut 实验3.9---------7-9 sdut-C语言实验-蟠桃记 分数 20
31 0
|
4月前
7-8 sdut-C语言实验-装船问题分数
7-8 sdut-C语言实验-装船问题分数
25 0
|
6月前
|
分布式计算 并行计算 算法
每个程序员都应该知道的 40 个算法(四)(1)
每个程序员都应该知道的 40 个算法(四)
43 2
|
6月前
|
机器学习/深度学习 人工智能 算法
每个程序员都应该知道的 40 个算法(四)(3)
每个程序员都应该知道的 40 个算法(四)
43 2