Ir ao conteúdo

Outro Programa em Linguagem C


Ir à solução Resolvido por Carolmarton,

Posts recomendados

Postado

ESTOU COM DIFICULDADES NESSE PROGRAMA E GOSTARIA DE UMA  AJUDA

FAZ POUCO TEMPO QUE ESTOU PROGRAMANDO E TENHO UMA CERTA DIFICULDADE COM VETORES AINDA.

***Preciso desse prog pra hoje ainda, até as 15:30. Se puderem dar uma força ai, obrigado glr!

 

 

Faça uma solução em Linguagem C, usando modularidade, para resolver os
seguintes problemas em um único arquivo .c
O usuário poderá escolher uma das seguintes opções abaixo, até que
pressione a tecla ‘S’ para sair e encerrar o programa:
A)  Adicionar letras
void adicionar();
Um vetor de 5 posições deverá ser declarado em área global, bem como sua
dimensão. O usuário deve inserir todas as letras de uma vez, na chamada
deste módulo.
B)  Contar letras
void contar(int*, int*);
O procedimento recebe por referência a quantidade de vogal e de não vogal a
ser impressa na main().
C)  Pesquisar letra
int pesquisar(char);
O módulo recebe a letra a ser pesquisada. O usuário informa a letra desejada
e, se esta existir, o módulo retorna o índice onde ela se encontra no vetor. A
letra será impressa na main(). Se existir mais de uma letra, retornar o índice
da primeira encontrada.
D)  Excluir letra
Remove do vetor a letra desejada, em todas as posições onde ela estiver. A
exclusão se refere à movimentação de elementos, da direita para a esquerda,
conforme abordado em aula.
O protótipo de exclusão é definido pelo aluno.
E)  Imprimir
void imprimir();
Imprime todos os elementos do vetor

Apresente o menu acima em um laço do-while, e use a estrutura switch-case
para a seleção da opção do usuário.
Observações:
O sistema não poderá diferenciar letras maiúsculas de minúsculas, isto é, ‘A’
deve ser o mesmo que ‘a‘.
Qualquer alteração no protótipo ou na definição dos módulos acima, ou se não
funcionarem de acordo com o que se pede, será atribuída nota zero à solução
do mesmo. Por exemplo, o módulo contar() não imprime nada no seu corpo,
mas na main().
O sistema deve ser consistente. Por exemplo, não realizar a pesquisa se o
vetor estiver vazio.

  • Solução
Postado
#include <stdio.h>

    void adicionar();
    void contar(int*, int*);
    int pesquisar(char);
    void excluir(); // Posso definir o que quiser
    void imprimir();
    
    
    
    int main (){

        int op;

        do
        {
            printf("\n ESCOLHA UM OPCAO: \n \n A) ADICIONAR LETRAS \n  CONTAR LETRAS \n C) PESQUISAR LETRAS \n D) EXCLUIR LETRAS \n E) IMPRIMIR \n S) SAIR \n");
            printf("  >>>>> ");
            scanf("%d", &op);

            switch (op)
            {
                case 'a':
                    adicionar();
                break;

                case 'b':
                    contar();
                break;

                case 'c':
                    pesquisar();
                break;

                case 'd':
                    excluir();
                break;

                case 'e':
                    imprimir();
                break;

                case 's':
                    printf("Saindo..... Pressione enter!");
                break;

                default:
                        printf("Opcao invalida!");

            }

        } while (op != 's');

        return 0;
    }


 

6 horas atrás, kgin disse:

poste o que você já fez para nos podermos ajudar.

Comecei agr a pouco, estou fazendo esse menu

#include <stdio.h>

    void adicionar();
    void contar(int*, int*);
    int pesquisar(char);
    void excluir(); // Posso definir o que quiser
    void imprimir();
    
    
    
    int main (){

        int op;

        do
        {
            printf("\n ESCOLHA UM OPCAO: \n \n A) ADICIONAR LETRAS \n  CONTAR LETRAS \n C) PESQUISAR LETRAS \n D) EXCLUIR LETRAS \n E) IMPRIMIR \n S) SAIR \n");
            printf("  >>>>> ");
            scanf("%d", &op);

            switch (op)
            {
                case 'a':
                    adicionar();
                break;

                case 'b':
                    contar();
                break;

                case 'c':
                    pesquisar();
                break;

                case 'd':
                    excluir();
                break;

                case 'e':
                    imprimir();
                break;

                case 's':
                    printf("Saindo..... Pressione enter!");
                break;

                default:
                        printf("Opcao invalida!");

            }

        } while (op != 's');

        return 0;
    }

Um tempo atrás fiz esse, acredito que será mais o menos isso, só preciso colocar em módulos e incrementar o modulo contar, também preciso usar ponteiros no módulo contar, será minha maior dificuldade já que não peguei a manha de ponteiros ainda.

#include <stdio.h>
#include <locale.h>

    int main (){
        setlocale(LC_ALL,"");

    int vetor[5] = {0}, op, i = 0, total = 0, item, posicao;

        do{
            printf("\nESCOLHA UMA OPÇÃO: \n 1.Inserir \n 2.Pesquisar \n 3.Excluir \n 4.Imprimir \n 5.Sair\n");
            scanf("%d",&op);

            switch(op){

                case 1:
                        if (total>4)

                        break;

                            else
                                printf("Insira um numero inteiro para o vetor de 5 posições: ");
                                scanf("%d", &vetor[total]);
                                total++;
                            break;

                case 2:
                        if (total == 0)

                        break;

                            else
                                printf("\nPESQUISE UM ITEM NO VETOR: ");
                                scanf("%d",&item);

                                    for (i=0;i<total;i++)
                                        if (vetor[i]==item)
                break;

                    if (i>=total)
                        printf("\nO ITEM NÃO FOI ENCONTRADO!");
                            else
                                printf("\nO ITEM %d ESTÁ NA POSIÇÃO: %d \n", item, i);
                    break;

                case 3:
                        if (total==0)

                        break;

                            else
                                printf("\nESCOLHA O ELEMENTO A SER REMOVIDO: ");
                                scanf("%d",&posicao);

                                for (i=posicao;i<total-1;i++)
                                     vetor[i] = vetor[i+1];
                                     total--;
                case 4:
                        if (total==0)

                        break;

                            else
                                printf(" SEU VETOR = %d %d %d %d %d",vetor[0],vetor[1],vetor[2],vetor[3],vetor[4]);

                case 5:
                        return(0);

                default:
                    printf("OPÇÃO INVALIDA!");

                break;

                     }

        }
            while(op!= 5);

    return 0;
}

 

Postado

@Carolmarton você deveria começar assim ao invés de começar pelo menu

#include <stdio.h>

#define T_FRASE 6

char frase[T_FRASE];


void adiciona(void);

void imprime(void);

int main(void)
{
    adiciona();
    imprime();
    return(0);
}

void adiciona(void)
{
    printf("Digite alguma coisa de ate %d letras\n", T_FRASE-1);
    scanf("%[^\n]s", frase);	/* Recomendo usar fgets() para pegar uma string */
}

void imprime(void)
{
    printf("voce digitou %s\n", frase);
}

 

1 hora atrás, Carolmarton disse:

A)  Adicionar letras
void adicionar();
Um vetor de 5 posições deverá ser declarado em área global, bem como sua
dimensão. O usuário deve inserir todas as letras de uma vez, na chamada
deste módulo.

Se você começar por aqui e depois ir para

1 hora atrás, Carolmarton disse:

E)  Imprimir
void imprimir();
Imprime todos os elementos do vetor

Depois e só continuar fazendo as funções para no final fazer o menu.

 

esse exemplo no replit

https://replit.com/@KGin/Exemplo#main.c

45 minutos atrás, Carolmarton disse:

Um tempo atrás fiz esse, acredito que será mais o menos isso, só preciso colocar em módulos e incrementar o modulo contar, também preciso usar ponteiros no módulo contar, será minha maior dificuldade já que não peguei a manha de ponteiros ainda.

sim, é mais ou menos isso só que com caracteres.

 

para contar quantas as vogais e as consoantes não é tão difícil assim, faça algo mais ou menos assim.

void conta(int *vogais, int *consoantes)
{
    int contador;
    *vogais = *consoantes = '\0';
    for (contador = 0; frase[contador] != '\0'; contador++) {
        switch (frase[contador]) {
            case 'a':
            case 'A':
                (*vogais)++;
                break;

            case 'e':
            case 'E':
                (*vogais)++;
                break;
            
            case 'i':
            case 'I':
                (*vogais)++;
                break;

            case 'o':
            case 'O':
                (*vogais)++;
                break;

            case 'u':
            case 'U':
                (*vogais)++;
                break;

            default:
                if ((frase[contador] >= 'A' && frase[contador] <= 'Z') ||
                   (frase[contador] >= 'a' && frase[contador] <= 'z'))
                    (*consoantes)++;
        }
    }
}

 

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!