2017-08-22 11 views
0

これはCコードをリンクリストに追加しますが、これは目的の出力を生成しません。dev-C++の単独リンクリスト4.9.9.2

# include <iostream> 
# include <stdlib.h> 
using namespace std; 
struct listas 
{ 
    char nombre[30]; 
    string celular; 
    listas *direccionA; 
}; 
listas *listao,*listaaux; 
void ingreso(); 
void mostrar(); 
int main() 
{ 
    int I,Humanos,Num; 
    while(true){ 
    printf("Numero de personas a registrar: \n"); 
    scanf("%d", &Humanos); 
    for(I=1; I<=Humanos; I++){ 
      ingreso(); 
      } 
      mostrar(); 
    } 
} 
void ingreso(){ 
    if(listao==NULL){ 
     listao=new(listas); 
     cout<<"Ingresa el nombre"<<endl; 
     cin>>listao->nombre; 
     cout<<"Ingresa el numero de celular"<<endl; 
     cin>>listao->celular; 
     cout<<"Datos ingresados correctamente"<<endl; 

     return; 
    } 
    listaaux=new(listas); 
    cout<<"Ingresa el nombre"<<endl; 
    cin>>listaaux->nombre; 
    cout<<"Ingresa el numero de celular"<<endl; 
    cin>>listaaux->celular; 
    cout<<"Dato ingresado correctamente"<<endl; 
    listao->direccionA=listaaux; 
    listaaux->direccionA=NULL; 
} 
void mostrar(){ 
    if(listao==NULL){ 
     cout<<"No hay datos en la Lista"<<endl; 
    } 
    listaaux=listao; 
    cout<<"Los datos de la Lista son: "<<endl; 
    while(listao!=NULL){ 
     cout<<"datos de la persona"<<endl; 
     cout<<"Nombre:"<<listao->nombre<<endl; 
     cout<<"Celular:"<<listao->celular<<endl; 
     listao=listao->direccionA; 
    } 
    cout<<"----"<<endl; 
} 

これが結果です。

​​

しかし、私はすべての日付または「N」の日付を保存し、すべての日付を表示したいが、私はすべてを保存する方法がわからない:それは最初と最後の日付を保存します。私は問題がingreso()機能にあると思う。これが唯一のあなたが作成し、最後のノードと第1のノードをリンクするために起こっている

listao->direccionA=listaaux; 
listaaux->direccionA=NULL; 

+0

などを割り当てる必要がありhttps://ericlippert.com/2014/03/05/how-to- debug-small-programs /)、[ラバーダックデバッグ](https://en.wikipedia.org/wiki/Rubber_duck_debugging)、実際のデバッガを使用して行ごとにコードをステップ実行する方法について学びます。 –

+0

申し訳ありませんが、あなたが必要としているヘルプの種類を理解できない言語を理解できませんでした –

+0

私はすべてのデータが追加されている必要があります。最初と最後のデータだけでなく、 –

答えて

0

問題は、このラインです。 あなたは(私はあなたが[小さなプログラムをデバッグする方法]を読んでお勧めの新しいノードの頭の横の隣この

listaaux->direccionA = listao->direccionA; 
listao->direccionA = listaaux; 
+0

しかし、データ "エラー"を表示して実行を終了すると、プログラムを停止する –

+0

@HéctorAlonsoそれは私のために働く[ここ](http://cpp.sh/6co7z) – Tyger

+0

@ Tyger 3つ以上のデータでは? –

関連する問題