鱼C论坛

 找回密码
 立即注册
查看: 1994|回复: 5

[已解决]麻烦各位大佬帮忙看下

[复制链接]
发表于 2022-12-1 09:40:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述

在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转 180180180 度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。
输入格式

共两行。

第一行是车厢总数 N(≤10000)N( \le 10000)N(≤10000)。

第二行是 NNN 个不同的数表示初始的车厢顺序。
输出格式

一个整数,最少的旋转次数。
输入输出样例

#include<stdio.h>
int main()
{
        int n;
        scanf("%d",&n);
    int a[n],i,j,t,count=0;
        for(i=0;i<n;i++)scanf("%d",&a[i]);        
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                if(a[j]>a[j+1]){
                        //t=a[j];
                        //a[j]=a[j+1];
                        //a[j+1]=t;
                        count++;
                }
        printf("%d\n",count);                
                        
        return 0;
}
我写的代码,加上排序的过程就能输出正确结果,如果不加结果就不正确
比如3 1 2 4 和 2 1 3 4都输出3
最佳答案
2022-12-1 11:02:41
本帖最后由 jhq999 于 2022-12-1 11:03 编辑
basketmn 发表于 2022-12-1 10:46
我只想知道我那个有什么问题


你把符合条件互换注释掉了
本质就是冒泡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-1 10:31:02 | 显示全部楼层
本帖最后由 jhq999 于 2022-12-1 10:35 编辑
#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[n],i,j,t,count=0,flag=1;
    for(i=0; i<n; i++)scanf("%d",&a[i]);
    for(i=0; i<n-1; i++)
    {
        flag=1;
        for(j=0; j<n-i-1; j++)
        {
            if(a[j]>a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
                flag=0;
                count++;
            }
        }
        if(flag)break;
    }
    for(i=0; i<n; i++)printf("%d",a[i]);
    printf("\n%d\n",count);

    return 0;
}
4
3 1 2 4
1234
2

Process returned 0 (0x0)   execution time : 11.623 s
Press any key to continue.
4
2 1 3 4
1234
1

Process returned 0 (0x0)   execution time : 3.141 s
Press any key to continue.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-1 10:46:03 | 显示全部楼层

我只想知道我那个有什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-1 11:02:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2022-12-1 11:03 编辑
basketmn 发表于 2022-12-1 10:46
我只想知道我那个有什么问题


你把符合条件互换注释掉了
本质就是冒泡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-1 11:21:03 | 显示全部楼层
jhq999 发表于 2022-12-1 11:02
你把符合条件互换注释掉了
本质就是冒泡

不要交换的结果,只要次数
我感觉跟这个没关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-1 11:32:04 | 显示全部楼层
本帖最后由 basketmn 于 2022-12-1 11:37 编辑

我想明白了,感谢大佬
光判断条件,但数列本身不会变,所以结果不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-27 11:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表