Ir para conteúdo
Fórum Script Brasil
  • 0

DUVIDA, INTERPRETAÇÃO DO EXERCICIO EM C


andersonwxavier

Pergunta

Bom dia, Galera meu primeiro tópico no forum, comecei o curso de CC recentemente. e estou tendo muita dificuldade em uma materia chamada

Estrutura de dados,

peço a ajuda de vocês, desde já muito obrigado a todos.

Eu quero entender o programa abaixo o professor passou esse codigo e quer, que seja criado estruturas que estão faltando no programa,

quero que alguém me explique como faço para criar essas estruturas

o conteudo que está comentado são as estruturas que precisa ser criadas

Obs(quero apenas uma explicação dizendo como fazer)

Muito Obrigado a todos!!!

Segue programa.

#include <iostream>

#include <string.h>

using namespace std;

#define tam_max 10

typedef int LISTA[tam_max];

/*int acessar (LISTA l, int pos, int fim, int &valor);

int alterar (LISTA l, int pos, int fim, int nvalor);*/

int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor);

//int remover (LISTA l, int pos, int &fim, int &valor);

void mostrar_lista (LISTA l, int fim);

int main() {

LISTA minhalista;

int valor, final = 0, posicao,r;

char op;

do {

mostrar_lista (minhalista, final);

puts ("\n\nMenu principal");

puts ("\n\nEscolha a operacao que deseja realizar:");

puts ("\n\n1- Inserir valor\n\n2- Acessar valor de uma posicao\n\n3- Alterar valor de uma posicao");

puts ("\n4- Remover posicao\n\n5- Sair\n\nDigite a opcao:");

op = getchar();

switch (op) {

case '1': puts ("\n\nDigite o valor (inteiro) a inserir: ");

scanf ("%d",&valor);

fflush(stdin);

puts ("\n\nDigite a posicao em que deseja inserir: ");

scanf ("%d",&posicao);

fflush(stdin);

r=inserir_antes(minhalista, tam_max, posicao-1, final, valor);

if (r==1) puts ("\n\nValor inserido com sucesso!");

else puts ("\n\nERRO NA INSERCAO!");

getchar();

break;

}

} while (op!='5');

}

void mostrar_lista (LISTA l, int fim) {

puts ("\n\nSITUACAO DA LISTA\n\n");

for (int i = 0; i < fim; i++)

printf ("%d ", l);

if (fim == 0) puts ("Lista Vazia");

puts ("\n\n");

}

int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor) {

int ret, i;

if (fim < tam){

if (pos < 0 || pos > fim) {

puts ("\n\nPosicao Invalida para a insercao\n\n");

ret=0;

}

else {

for (i=fim; i<pos; i--)

l=l[i-1];

l[pos]=valor;

fim++;

ret =1;

}

}

else {

puts ("\n\nLista Cheia\n\n");

ret = 0;

};

return (ret);

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Na sua função inserir_antes você tem um for que procura uma posição vaga e grava o valor informado.

Pra sua função acessar() você só precisa validar os limites (como faz na inserir_antes) e copiar o conteudo de l[pos] pra valor.

Pra função alterar() é a mesma coisa, só que você faz l[pos] ser igual ao valor informado.

Ajudou?

Abs

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...