Jump to content
Sign in to follow this  
henriqueseiji

Problemas com (.c) e (.cpp)

Recommended Posts

henriqueseiji

Olá pessoal, estou com um probleminha na hora de salvar o tipo de arquivo do código. O código em (.c) roda normal com o DevC++, mas se eu salvo ele em (.cpp) que é o que eu preciso, ele não roda. Se alguém puder me ajudar fico agradecido! Abraço.

#include <stdio.h>

#include<conio.h>

#include<string.h>

typedef struct{

    int elemento;   

}lista;

char menu(char opcao);

char validaOpcao(char opcao);

int validaPosicao(int *posicao, int cont);

int main(void)

{

// Declaracoes

    char opcao;

    lista *elementos = NULL, *elementoAux = NULL;

    int cont = 0, aux, contador, posicao, flag, trocador;

// Instrucoes

  do{

      opcao = menu(opcao);

      system("CLS");

      switch(opcao)

      {

          case '1' :

              if((elementoAux = realloc(elementos,(cont+1) * sizeof(lista))) == NULL){

                printf("Memoria nao pode ser alocada.");

                getch();

                break;

              }

              else

                elementos = elementoAux;

              printf("Informe o elemento para ser acrescentado ao fim da lista:\n");

              scanf("%d", &elementos[cont].elemento);

              cont++;

              system("CLS");

              break;

          case '2' :

              if((elementoAux = realloc(elementos,(cont+1) * sizeof(lista))) == NULL){

                printf("Memoria nao pode ser alocada.");

                getch();

                break;

              }

              else

                elementos = elementoAux;

              if(cont != 0){

                  aux = cont-1;

                  trocador = elementos[aux].elemento;

                  elementos[aux+1].elemento = trocador;

                  while(aux >= 1){

                      elementos[aux].elemento = elementos[aux-1].elemento;

                      aux--;

                  }

              }

              aux = 0;                 

              printf("Informe o elemento para ser acrescentado ao inicio da lista:\n");

              scanf("%d", &elementos[aux].elemento);

              system("CLS");

              cont++;

              break;

          case '3' :

              printf("Informe a posicao a qual deseja excluir:\n");

              scanf("%d", &posicao);

              flag = validaPosicao(&posicao, cont);

              if(!flag){

                  for(aux = posicao-1; aux < cont-1; aux++)

                      elementos[aux].elemento = elementos[aux+1].elemento;

                  printf("Exclusao realizada com sucesso!\n");

                  cont--;

              }

              getch();

              system("CLS");

              break; 

          case '4' :

              printf("Informe a posicao da lista a qual deseja localizar:\n");

              scanf("%d", &posicao);

              flag = validaPosicao(&posicao, cont);

              if(!flag)

                  printf("Elemento = %d", elementos[posicao-1].elemento);

              getch();

              system("CLS");

              break;   

          case '5' :

              if(cont != 0)

                    printf("Existe(m) %d elemento(s) nesta lista.", cont);

              else

                    printf("Nao existe nenhum elemento nesta lista.");

              getch();

              system("CLS");

              break; 

          case '6' :

              if(cont != 0){

                  printf("LISTA\n\n");

                  for(aux = 0; aux < cont; aux++)

                      printf("Elemento %d = %d\n", aux+1, elementos[aux].elemento); 

                  getch();

                  system("CLS");

              }

              else{

                  printf("Nao existe nenhum elemento nesta lista.");

                  getch();

              }

              system("CLS");

      }

  }while(opcao != '7');

  return 0;

}

char menu(char opcao)

{

    printf("        MENU\n\n");

    printf("1-Inserir elemento no fim da lista\n\n");

    printf("2-Inserir elemento no inicio da lista\n\n");

    printf("3-Excluir elemento que se encontra na posicao informada\n\n");

    printf("4-Localizar um elemento\n\n");

    printf("5-Informar a quantidade de elementos existentes na lista\n\n");

    printf("6-Imprimir a lista\n\n");

    printf("7-Sair do programa\n\n");

    opcao = validaOpcao(getche());

    return opcao;

}

char validaOpcao(char opcao)

{

    while((opcao < '1') || (opcao > '7')){

        printf("Opcao de menu invalida. Informe novamente.\n");

        opcao = getche();

    }

    return opcao;

}

int validaPosicao(int *posicao, int cont)

{

    if((*posicao <= 0) || (*posicao > cont)){

        printf("Posicao nao encontrada...\n");

        return 1;

    }

    else

        return 0;

}

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.