TÓPICO

Agora 15% de erro alguém para me ajudar

gdmvital perguntou 3 years ago

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

typedef struct Arquivo { // Anlisar a estrurua do email

  char E_Valid[100];
  struct Arquivo * esqurda;
  struct Arquivo * direita;

}

Arquivo;
int resposta;
void Transporte(char * );
Arquivo * push(Arquivo * , char * );

int main() { // Recebe os dados de entrada 

  int E_QTD = 0, i;
  char E_Nome[100], E_Prov[100];
  // char Arroba[2] = {'@','\0'};
  Arquivo * Resolucao = NULL;

  scanf("%d", & E_QTD);
  for (i = 1; i <= E_QTD; i++) { // quantidade de email para ser lido
    scanf(" %[^@]%s", E_Nome, E_Prov);
    Transporte(E_Nome);
    strcat(E_Nome, E_Prov);
    Resolucao = push(Resolucao, E_Nome);
  }
  printf("%d\n", resposta);

  return 0;
}

void Transporte(char * Analise) { // Função que analisa os " .  + "

  int i = 0, j = 0;
  char aux[100];

  for (i = 0; i < Analise[i]; i++) {
    if (Analise[i] != '.')
      aux[j] = Analise[i];
  }
  for (j = 0; j < aux[j]; j++) {
    if (aux[j] == '+')
        Analise[i]=aux[j];

    else if (aux[j] == '.') 
        Analise[i]=aux[j];
    }
}

Arquivo * push(Arquivo * Resolucao, char * Analise) {

  if (!Resolucao) { // verificar se os ladoes são iguais 

    Resolucao = (Arquivo * ) malloc(sizeof(Arquivo));
    Resolucao -> esqurda = Resolucao -> direita = NULL;
    strcpy(Resolucao -> E_Valid, Analise);
    resposta++;
  } else if (strcmp(Resolucao -> E_Valid, Analise) > 0) {
    Resolucao -> esqurda = push(Resolucao -> esqurda, Analise);
  } else if (strcmp(Resolucao -> E_Valid, Analise) < 0) {
    Resolucao -> direita = push(Resolucao -> direita, Analise);
  }
  return Resolucao;
}

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.