Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Jessé P. de Melo

C Orientação sobre otimização de codigos

Recommended Posts

Boa tarde.

Estou estudando C para manusear microcontroladores e sei que são bem limitados. Como sei que o códio esta bem otimizado? E quando sei que já chegou no limite máximo de otimização?

Como exemplo vou dar um exercício que fiz, não esta otimizado porque a intenção era só fazer funcionar.

Exercício:

Faca um programa para armazenar um livro de receitas e:
• Crie um vetor de 5 receitas, que deve ter nome (maximo 25 letras), quantidade de 
ingredientes e ingredientes.
• Para cada receita, leia seu nome e a quantidade de ingredientes. então crie e leiao vetor de ingredientes, sendo que cada ingrediente contem nome e quantidade. 
• Procure receita por nome, mostrando seus ingredientes se encontrar. Se não encontrar, informe ao usuário. Repita o processo ate digitar uma string vazia. 

Segue código: *testei antes de por no loop infinito e por o if para dar exit.

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

void main(void){
    char nome_proc[26];

    struct lista_ing{
        char nome[26];
        int qtd_ing;
        char ing[200];
    };

    struct lista_ing receita[5];

    for(int x=0;x<5;x++){                           /*Populando strings*/
        printf("Digite o nome de uma receita: ");
        scanf("%26[^\n]",&receita[x].nome);
        fflush(stdin);
        printf("Qual a quantidade de ingredientes? ");
        scanf("%i",&receita[x].qtd_ing);
        fflush(stdin);
        char ingredientes[receita[x].qtd_ing][16];
            for(int y=0;y<receita[x].qtd_ing;y++){
                printf("Digite o ingrediente %i da receita %i: ",y+1,x+1);
                scanf("%16[^\n]",&ingredientes[y]);
                fflush(stdin);
            }
        int tam=0;                                  /*Aquisição de quantidade de ingredientes*/
            for(int y=0;y<receita[x].qtd_ing;y++){
                tam++;
            }
        char ing0[200]="  ";                        /*Colocando tudo em uma só strings para salvar no vetor do tipo struct*/
            for(int y=0;y<tam;y++){
                strcat(ing0," ");
                strcat(ing0,ingredientes[y]);
            }
            strcpy(receita[x].ing,ing0);
    }
    for(;;){                                        /*Parte que pesquisa */
        printf("Digite a receita que procurando: ");
        scanf("%s",&nome_proc);
        fflush(stdin);
        int test = strcmp(nome_proc," ");
        if(test==0){
            exit(0);
        }
        for(int x=0;x<5;x++){
            char *encontrou=NULL;
            encontrou=strstr(receita[x].nome,nome_proc);
            if (encontrou!=NULL){
                printf("Nome: %s\tQuantidade de ingredientes: %i\nLista de ingredientes: %s",receita[x].nome,receita[x].qtd_ing,receita[x].ing);
            }
        }
    }
    strcpy(nome_proc," ");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×