Jump to content
Fórum Script Brasil
  • 0

Bubblesort


Ankani

Question

Ola boa tarde,

Estou a fazer um trabalho de comandos em linux, e tenho uma parte no comando ls para imprimir os ficheiros por ordem de nome e não estou conseguindo fazer o bubblesorte.Neste proxima codigo tenho as variaveis base.

#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <dirent.h>
#include <time.h>
#include <sys/stat.h>
#include <sys/types.h>


struct linha {
     
    int numero_linha;
    char conteudo[350];
    struct linha *linha_seg;
    struct linha *linha_ant;


};


typedef struct linha * LINHA;
typedef struct linha ** PLINHA; // Apontador para Apontador para Linhar, para ser usado na funcao Sort para o sort.c
LINHA primeira_linha, ultima_linha;


char comandos[30][10];
char ficheiros[25][350];
int total_comandos;
int total_ficheiros;

}
Neste proximo codigo tenho a funcao ls
void ls(char nomedirectorio[80]) {

    DIR *dp;
        struct dirent *dirp;


        FILE *file;


        char ficheiro[100];


    int contador_pagina = 1;
    int contador_print = 0;
    int diferenca = 0;
    int numero_espacos;


    if ((dp = opendir(nomedirectorio)) == NULL ) {
                fprintf(stderr, "Erro1: Directorio não Existente!\n");
                exit(1);
        }


        while ((dirp = readdir(dp)) != NULL ) {


        if(existe_arg("l")) { //Faz a listagem longa com indicacao nome, dimensao e data do ficheiro
            file = fopen(dirp -> d_name, "r"); 
            strcpy(ficheiro, dirp -> d_name);


            printf("Nome: %s\t Dimensao: %d", ficheiro, tamanho(file));
            date(ficheiro);
            fclose(file);
        }


        if(existe_arg("p")) { //Faz pausa a pagina a pagina
            if((contador_pagina % 30) == 0) {
                            printf("\n\n\n\n Prima Enter Para Ver o Resto do Ficheiro\n");
                                getchar();
                        }


                        printf("%s\n", dirp -> d_name);
                           contador_pagina++;
        }


        if(existe_arg("c")) { //Lista por colunas os ficheiros contidos na directoria


            if((contador_print % 3) == 0) {
                printf("\n");
            }


            diferenca = 50 - strlen(dirp -> d_name);


            printf("%s", dirp -> d_name);
                        contador_print++;


            for(numero_espacos = 0; numero_espacos < diferenca; numero_espacos++) {
                printf(" ");
            }
        }
 if (exist_arg("on"))   <--- BUBBLESORT AQUI ON= ORDER NAME.
        
         
        if(!existe_arg("l") && !existe_arg("on") && !existe_arg("od") && !existe_arg("os") && !existe_arg("p") && !existe_arg("c")) {
            printf("%s\n", dirp -> d_name);
        }
    }


    if(existe_arg("c")) {
        printf("\n");
    }
    closedir(dp);
}

Sera que da para ajudar?

Obrigado

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...