鱼C论坛

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

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

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

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

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

x
题目描述

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

共两行。

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

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

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


  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int n;
  5.         scanf("%d",&n);
  6.     int a[n],i,j,t,count=0;
  7.         for(i=0;i<n;i++)scanf("%d",&a[i]);       
  8.         for(i=0;i<n;i++)
  9.                 for(j=0;j<n-i-1;j++)
  10.                 if(a[j]>a[j+1]){
  11.                         //t=a[j];
  12.                         //a[j]=a[j+1];
  13.                         //a[j+1]=t;
  14.                         count++;
  15.                 }
  16.         printf("%d\n",count);               
  17.                        
  18.         return 0;
  19. }
复制代码

我写的代码,加上排序的过程就能输出正确结果,如果不加结果就不正确
比如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 编辑
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n;
  5.     scanf("%d",&n);
  6.     int a[n],i,j,t,count=0,flag=1;
  7.     for(i=0; i<n; i++)scanf("%d",&a[i]);
  8.     for(i=0; i<n-1; i++)
  9.     {
  10.         flag=1;
  11.         for(j=0; j<n-i-1; j++)
  12.         {
  13.             if(a[j]>a[j+1])
  14.             {
  15.                 t=a[j];
  16.                 a[j]=a[j+1];
  17.                 a[j+1]=t;
  18.                 flag=0;
  19.                 count++;
  20.             }
  21.         }
  22.         if(flag)break;
  23.     }
  24.     for(i=0; i<n; i++)printf("%d",a[i]);
  25.     printf("\n%d\n",count);

  26.     return 0;
  27. }
复制代码
  1. 4
  2. 3 1 2 4
  3. 1234
  4. 2

  5. Process returned 0 (0x0)   execution time : 11.623 s
  6. Press any key to continue.
  7. 4
  8. 2 1 3 4
  9. 1234
  10. 1

  11. Process returned 0 (0x0)   execution time : 3.141 s
  12. 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-4-19 23:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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