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;
}