0
How can I not repeat a value on this list?
Every time I do something, I can’t print.
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct lista{
    int valor;
    struct lista *ponteiro;
}lista;    
lista *raiz=NULL;    
lista* insere( int valor){
    lista *aux=(lista*)malloc(sizeof(lista));
    aux->valor=valor;
    aux->ponteiro=raiz;
    raiz=aux;
    return raiz;
}
void imprime(lista* raiz){
    while(raiz!=NULL){
        cout<<"raiz: "<<raiz->valor<<"\n";
        raiz=raiz->ponteiro;
    }
}
int main(){
    void imprime(lista* raiz);
    lista* insere( int valor);
    int valor, op;
    do{
    cout<<"1- insere\n2-imprime\n3-zero para sair:";
    cin>>op;
    switch(op){
        case 1: cout<<"\ninsira um valor: ";
        cin>>valor;
        raiz=insere(valor );
        break;
        case 2: imprime(raiz);
        break;
        default:cout<<"valor errado ";
    }
}
    while(op!=0);
}
Sugestao: uses a C compiler for C programs, a C++ compiler for C++ programs. Using a C++ compiler for C programs (or vice versa) can, for example, create nonexistent errors or hide serious errors.
– pmg