北城相拥º 2022-07-18 08:49 采纳率: 60%
浏览 47
已结题

洛谷-排队取水问题-代码求纠错

img


我的代码按照题目的输入,得到的输出是对的,我也感觉代码没什么问题,但是提交之后一半Wa,找了半天没找出错误原因😭求高人指点

#include <stdio.h>

int main()
{
int n;
int a[1005][2];

scanf("%d", &n);

int i,j,t;
for (i = 0; i < n; i++)
{
    a[i][0] = i + 1;          //编写序号
    scanf("%d", &a[i][1]);    //等待时间
}

for (i = 1; i < n; i++)                 //冒泡排序
{
    for (j = 0; j < n - i; j++)
    {
        if (a[j][1] > a[j + 1][1])
        {
            t = a[j][1];
            a[j][1] = a[j + 1][1];
            a[j + 1][1] = t;

            t = a[j][0];
            a[j][0] = a[j + 1][0];
            a[j + 1][0] = t;
        }
    }

}

for (i = 0; i < n; i++)           //输出排序方法
{
    printf("%d ", a[i][0]);
}
printf("\n");

int count=0;
{
    for (i = 0; i < n - 1; i++)                 //累加等待时间
    {
        count += (a[i][1] * (n - i - 1));
    }
}

double ave = count / (float)n;                 //输出平均等待时间
printf("%.2lf",ave);



return 0;

}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-07-18 09:50
    关注

    修改如下,供参考:

    #include <stdio.h>
    int main()
    {
        int n;
        int a[1001][2];
        scanf("%d", &n);
        int i, j, t;
        for (i = 0; i < n; i++)
        {
            a[i][0] = i + 1;       //编写序号
            scanf("%d", &a[i][1]);//等待时间
        }
        for (i = 0; i < n - 1; i++)   //for (i = 1; i < n; i++)//冒泡排序  修改
        { 
            for (j = 0; j < n - i - 1; j++) //for (j = 0; j < n - i; j++)  修改
            {
                if (a[j][1] > a[j + 1][1])
                {
                    t = a[j][1];
                    a[j][1] = a[j + 1][1];
                    a[j + 1][1] = t;
    
                    t = a[j][0];
                    a[j][0] = a[j + 1][0];
                    a[j + 1][0] = t;
                }
            }
        }
        for (i = 0; i < n; i++)  //输出排序方法
        {
            printf("%d ", a[i][0]);
        }
        printf("\n");
        double count = 0;    //int count = 0;  修改
        for (i = 0; i < n; i++) //for (i = 0; i < n - 1; i++) //累加等待时间 修改
        {
            count += (a[i][1] * (n - i - 1));
        }
        double ave = count / n; //输出平均等待时间
        printf("%.2lf", ave);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测