Ir ao conteúdo
  • Cadastre-se

C Como otimizar o código


Giancarlos Nieto

Posts recomendados

Estou com esse Código em C, para poder ler 5 nomes e voltar o nome com maior número de caracteres e também concatenar dois nomes, porém estou achando muito grande a codificação e gostaria de estar resumindo ela, alguém poderia me ajudar.

# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <locale.h>
# include <string.h>

int main ( ) {
                setlocale ( LC_ALL, "Portuguese" ) ;
                printf ( "Programa: string_amigos.c\n\n" ) ;
                char amigo1[11], amigo2[11], amigo3[11], amigo4[11], amigo5[11], amigo[11], maior[11] ;
                int tamanho = 0;
                puts ( "Primeiro amigo: " ) ;
                gets ( amigo1 ) ;
                puts ( "Segundo amigo: " ) ;
                gets ( amigo2 ) ;
                puts ( "Terceiro amigo: " ) ;
                gets ( amigo3 ) ;
                puts ( "Quarto amigo: " ) ;
                gets ( amigo4 ) ;
                puts ( "Quinto amigo: " ) ;
                gets ( amigo5 ) ;
                printf ( "Primeiro amigo: %s\n", amigo1 ) ;
                printf ( "Segundo amigo: %s\n", amigo2 ) ;
                printf ( "Terceiro amigo: %s\n", amigo3 ) ;
                printf ( "Quarto amigo: %s\n", amigo4 ) ;
                printf ( "Quinto amigo: %s\n", amigo5 ) ;
                if ( strlen ( amigo1 ) > tamanho ) {
                               tamanho = strlen ( amigo1 ) ;
                               strcpy ( maior, amigo1 ) ;
                }
                if ( strlen ( amigo2 ) > tamanho ) {
                               tamanho = strlen ( amigo2 ) ;
                               strcpy ( maior, amigo2 ) ;
                }
                if ( strlen ( amigo3 ) > tamanho ) {
                               tamanho = strlen ( amigo3 ) ;
                               strcpy ( maior, amigo3 ) ;
                }
                if ( strlen ( amigo4 ) > tamanho ) {
                               tamanho = strlen ( amigo4 ) ;
                               strcpy ( maior, amigo4 ) ;
                }
                if ( strlen ( amigo5 ) > tamanho ) {
                               tamanho = strlen ( amigo5 ) ;
                               strcpy ( maior, amigo5 ) ;
                }
                strcpy ( amigo, amigo1 ) ;
                strcat ( amigo, " e " ) ;
                strcat ( amigo, amigo5 ) ;
                printf ( "Amigo com maior número de caracteres: %s\n", maior ) ;
                printf ( "Nomes concatenados: %s\n", amigo ) ;
                return 0 ;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Giancarlos Nieto       para diminuir o número de linhas você pode usar vetores para diminuir a quantidade de variáveis, pois com apenas um vetor você pode ter um grande número de variáveis, que podem ser usadas para a entrada de dados e nas comparações e também na saída, experimente esse seu código com algumas modificações :

# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <locale.h>
# include <string.h>
int main(){
                setlocale(LC_ALL,"");
                printf("======   Programa: string_amigos.c    ======\n\n");
                char amigo[7][20];
                char contagem[5][20]={{"Primeiro"},
                                      {"Segundo "},
                                      {"Terceiro"},
                                      {"Quarto  "},
                                      {"Quinto  "}};
                int i,tamanho = 0;
                for(i=0;i<5;i++){
                    printf("%s amigo: ",contagem[i]);
                    scanf("%s",&amigo[i]) ;
                }
                printf("\nAqui Estão Os Amigos\n");
                for(i=0;i<5;i++)
                    printf("%s amigo: %s\n",contagem[i],amigo[i]);
                for(i=0;i<5;i++)
                    if(strlen(amigo[i]) > tamanho){
                        tamanho = strlen(amigo[i]) ;
                        strcpy(amigo[6],amigo[i]);
                    }
                strcpy(amigo[5],amigo[1]);
                strcat(amigo[5]," e ");
                strcat(amigo[5],amigo[4]);
                printf("\nAmigo com maior número de caracteres: %s\n",amigo[6]);
                printf("Nomes concatenados: %s\n",amigo[5]);
                return 0 ;
}

 

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...