24h購物| | PChome| 登入
2009-08-18 17:57:30| 人氣1,604| 回應0 | 上一篇 | 下一篇

ACM 10905 Q10905: Children’s Game

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : 說真的,我不曉得別人怎麼寫得那麼短

我的作法 "非常"的長

可以參考我在 第二題:排列最大值 的說明 (我沒連結 自己去看唄)

/****************************************************/

#include<stdio.h>  
#include<stdlib.h>  
#include<string.h>  
main()  
{  
 int a,b,c,n,mm;  
 while(scanf("%d",&n)==1&&n!=0)  
  {  
   char x[100];  
   int math[101][100],number[100]={0};  
   for(a=0;a<n;a++)  
    {  
     scanf("%s",x);  
     int m=strlen(x);  
     number[a]=m;  
     for(b=0,c=0;b<100;b++,c++)  
      {  
       math[a][b]=x[c];  
       if(c==m-1)  
        c=-1;  
      }  
    }  
   for(a=0;a<n;a++)  
    for(b=0;b<n-1;b++)  
     {  
      int flag=0;  
      for(c=0;c<100;c++)  
       {  
        if(math[b][c]>math[b+1][c])/*找到前面的比較大 不用動*/ 
         {flag=0;break;}  
        if(math[b+1][c]>math[b][c])  
         {flag=1;break;}   
       }  
      if(flag==1)  
       {  
        int temp,temp1[100];  
        for(c=0;c<100;c++)  
         {  
          temp1[c]=math[b][c];  
          math[b][c]=math[b+1][c];  
          math[b+1][c]=temp1[c];  
         }  
         temp=number[b];  
         number[b]=number[b+1];  
         number[b+1]=temp;  
       }   
     }   
     for(a=0;a<n;a++)  
      for(b=0;b<number[a];b++)  
       printf("%c",math[a][b]);  
       printf("\n");  
  }  
 return 0;  

台長: 來源不明
人氣(1,604) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 10200 Q10200: Prime Time
此分類上一篇:ACM 10106 Q10106: Product

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文