Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

错的不行了,求助!附代码

Posted by onon at 2009-11-24 15:28:33 on Problem 1057 and last updated at 2009-11-24 15:29:50
#include <string.h>
#include <iostream>
using namespace std;

int depth;
char tmp[30];
char fn[60][30];
int nf, cnt;

//ifstream cin ("fn.txt");
//ofstream cout ("cout.txt");

void sortFileName (char filename[][30], int size)
{
   int i, j, k;
   
   for (i = 0; i < size - 1; i++){
       char t[30];
       strcpy (t, filename[i]);
       for (j = i + 1; j < size; j++) {
           if (strcmp (filename[j], filename[i]) < 0) {
               k = j;
               strcpy (filename[i], filename[j]);
           }
       }
       strcpy (filename[k], t);
       
   }
}

void printCont (int depth)
{
  
   char filename[30][30];
   int n = 0;
   int i, j, k;
   
   while (cnt < nf) { //a dir 
       strcpy(tmp, fn[cnt++]);
       if (tmp[0] == '*' || tmp[0] == ']' ) break;
       if (tmp[0] == 'd') {
          for (j = 1; j <= depth + 1; j++) {
              cout << "|";
              for (i = 1; i <= 5; i++){ cout << " "; }
          }
          cout << tmp << endl;
          printCont (depth + 1);
       }else {
          strcpy (filename[n++], tmp);
       }
   }
   sortFileName (filename, n);
   for ( i = 0; i < n; i++) {
       for (k = 0; k < depth; ++k) {
            cout << "|";
            for (j = 1; j <= 5; j++) cout << " ";
       }
       cout << filename[i] << endl;
   }
}

int readData ( )
{
     nf = 0;
     while (1) {
       cin >> fn[nf];
       if (fn[nf][0] == '*'){nf++; return 0;}
       if (fn[nf][0] == '#') return 1;
       nf++;
     }
     
}

int main ( )
{
  int ds = 0;
  while (1) {
      cnt = 0;
      int flag = readData ( );
      if (flag == 1) break;
  
      cout << "DATA SET " << ++ds << ":" << endl;   
      cout << "ROOT" << endl;      
      printCont (0);
      cout << endl;
  }
  return 0;   
}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator