Jump to content
Fórum Script Brasil
  • 0

DUVIDA, INTERPRETAÇÃO DO EXERCICIO EM C


andersonwxavier

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...