basketmn 发表于 2022-12-1 09:40:21

麻烦各位大佬帮忙看下

题目描述

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

共两行。

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

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

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


#include<stdio.h>
int main()
{
        int n;
        scanf("%d",&n);
    int a,i,j,t,count=0;
        for(i=0;i<n;i++)scanf("%d",&a);       
        for(i=0;i<n;i++)
                for(j=0;j<n-i-1;j++)
                if(a>a){
                        //t=a;
                        //a=a;
                        //a=t;
                        count++;
                }
        printf("%d\n",count);               
                       
        return 0;
}
我写的代码,加上排序的过程就能输出正确结果,如果不加结果就不正确
比如3 1 2 4 和 2 1 3 4都输出3

jhq999 发表于 2022-12-1 10:31:02

本帖最后由 jhq999 于 2022-12-1 10:35 编辑

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a,i,j,t,count=0,flag=1;
    for(i=0; i<n; i++)scanf("%d",&a);
    for(i=0; i<n-1; i++)
    {
      flag=1;
      for(j=0; j<n-i-1; j++)
      {
            if(a>a)
            {
                t=a;
                a=a;
                a=t;
                flag=0;
                count++;
            }
      }
      if(flag)break;
    }
    for(i=0; i<n; i++)printf("%d",a);
    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.

basketmn 发表于 2022-12-1 10:46:03

jhq999 发表于 2022-12-1 10:31


我只想知道我那个有什么问题

jhq999 发表于 2022-12-1 11:02:41

本帖最后由 jhq999 于 2022-12-1 11:03 编辑

basketmn 发表于 2022-12-1 10:46
我只想知道我那个有什么问题

你把符合条件互换注释掉了
本质就是冒泡

basketmn 发表于 2022-12-1 11:21:03

jhq999 发表于 2022-12-1 11:02
你把符合条件互换注释掉了
本质就是冒泡

不要交换的结果,只要次数
我感觉跟这个没关系

basketmn 发表于 2022-12-1 11:32:04

本帖最后由 basketmn 于 2022-12-1 11:37 编辑

我想明白了,感谢大佬
光判断条件,但数列本身不会变,所以结果不对
页: [1]
查看完整版本: 麻烦各位大佬帮忙看下