zoukankan      html  css  js  c++  java
  • UVA120Stacks of Flapjacks

    纠结了好几个小时 不明白哪错了 跟别人的代码仔仔细细的对照才发现题目要求把原来的数据再输出一遍 石化。。

    选择排序的思想 每次找到最大的那个数将它放在该放的位置

    输入用字符串 再转化成数字

    UVA就是麻烦 来来回回的逆转 都转晕了

    View Code
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include<string.h>
     4 int n ;
     5 void deal(char *s,int *a)
     6 {
     7     int begin,end,len=strlen(s);
     8     n=0;
     9     begin=0;
    10     end=begin;
    11     while(end<len)
    12     {
    13        while(s[end]!=' '&&s[end]!=0)
    14        end++;
    15        int t=0;
    16        while(begin<end)
    17        {
    18           t*=10;
    19           t+=s[begin]-'0';
    20           begin++;
    21        }
    22        n++;a[n]=t;
    23        begin=end+1;
    24        end=begin;
    25     }
    26 }
    27 int main()
    28 {
    29     int i, j, p[65],x[65],r[165],g, t, k, m,a[65];
    30     char c[60];
    31     while(gets(c)!=NULL)
    32     {
    33         deal(c,p);
    34         for(i = 1 ; i <= n ; i++)
    35         {
    36             if(i!=1)
    37             printf(" ");
    38             printf("%d", p[i]);
    39         }
    40         puts("");
    41         for(i = 1;i <= n;i++)
    42         {
    43             x[n-i+1]=p[i];
    44         }
    45         g = 0;
    46         for(i = 1 ; i < n ; i++)
    47         {
    48             int max = 0;
    49             for(j = i ; j <= n ; j++)
    50             if(max<x[j])
    51             {
    52                 max = x[j];
    53                 k = j;
    54             }
    55             if(k!=i)
    56             {
    57                 if(k!=n)
    58                 {
    59                    r[g++] = k;
    60                    int begin=k,end=n;
    61                   while(begin<=end)
    62                   {
    63                    t=x[begin];
    64                    x[begin]=x[end];
    65                    x[end]=t;
    66                    begin++;
    67                    end--;
    68                   }
    69                 }
    70                 r[g++] = i;
    71                int begin=i,end=n;
    72                 while(begin<=end)
    73                 {
    74                    t=x[begin];
    75                    x[begin]=x[end];
    76                    x[end]=t;
    77                    begin++;
    78                    end--;
    79                 }
    80             }
    81         }
    82         for(i = 0 ; i < g ; i++)
    83         printf("%d ", r[i]);
    84         printf("0\n");
    85     }
    86     return 0;
    87 }
  • 相关阅读:
    【水题递归】【HDU2044】我大沙茶了
    【小知识+小细节】不断更新ing...
    【数学三角恒等变幻】【HDU2552】三足鼎立
    【set&&sstream||floyed判环算法】【UVa 11549】Calculator Conundrum
    【CCTYPE函数系列】
    【输入输出挂】【Uva11462】Age Sort
    【树形贪心】【UVA1267】Network
    【贪心】【uva11520】 Fill the Square
    动态规划uva12563
    紫书ch9 uva12563
  • 原文地址:https://www.cnblogs.com/shangyu/p/2581567.html
Copyright © 2011-2022 走看看