פורסם 2013 בינואר 712 שנים יש לי בעיה קשה קשה ברשימות מקושרות, זהו חלק מתוכנית שכתבתי וכל מה שכרגע אני רוצה לדעת זה איך אני מכניס לרשימה תעודת זהות שכל ספרה תהיה באיבר אחד. מה שאני לא יודע זה בהתחלה של הfor המשתנה p=למה?, או שאולי אני בכלל לא מבין רשימות מקושרות?!#include<iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>using namespace std;typedef struct id{ int data; struct id *next;}Node;void main(){ Node *head,*p; Node *temp=(Node*)malloc(sizeof(Node)); if(!temp) { cout<<"no mem alocated\n"; return; } for(p=temp->; p->next!=NULL ; p=p->next) { cin>>p->data; }}
פורסם 2013 בינואר 712 שנים ערוך בבקשה את הכותרת וכתוב בה את השפה שבה אתה עובד.אי אפשר לצבוע קוד, פשוט תסמן בהערה או משהו כזה.
פורסם 2013 בינואר 712 שנים סבבה.מה הלולאה שכתבת עושה הוא "כל עוד החוליה הנוכחית היא לא האחרונה, התקדם לחוליה הבאה ברשימה". זה עובד מצוין כשאתה רוצה לעבור על רשימה שכבר בנויה (לדוגמה, על מנת להדפיס רשימה קיימת), אבל לא יעבוד במקרה שלך... נסה להבין למה.
פורסם 2013 בינואר 712 שנים מחבר סבבה.מה הלולאה שכתבת עושה הוא "כל עוד החוליה הנוכחית היא לא האחרונה, התקדם לחוליה הבאה ברשימה". זה עובד מצוין כשאתה רוצה לעבור על רשימה שכבר בנויה (לדוגמה, על מנת להדפיס רשימה קיימת), אבל לא יעבוד במקרה שלך... נסה להבין למה.מה שאתה אומר בעצם שאני צריך להקצות דינאמית מקום כל פעם מחדש בלולאה?חשבתי על זה אבל אני לא יודע איך ליישם את זה בדיוק
פורסם 2013 בינואר 712 שנים מחבר זה בדיוק מה שאני אומר. אתה יודע איך מוסיפים איבר לרשימה מקושרת?[size=78%]void main(){ [/size]num *head=(num*)malloc(sizeof(num)); num *p=head; while (p!=NULL) { num *next=(num*)malloc(sizeof(num)); cout<<"enter a number: "; cin>>p->data; p=p->next; } sum;}זה לא עובד לי.....הוא מוציא שגיאה בריצה
פורסם 2013 בינואר 712 שנים מחבר בעיקרון כן אבל לא נראה לי..מה אתה אומר על זה? פה הוא יוצר לי רק שתי מקומות במקום 9[size=78%]void main(){ num *head; head=(num*)malloc(sizeof(num)); cout<<"enter first digit: "; cin>>head->data; head->next=NULL; for(int i=0;i<9;i++) { [/size] num*tmp; tmp=(num*)malloc(sizeof(num)); cout<<"enter next digit: "; cin>>tmp->data; tmp->next=NULL; head->next=tmp; }}
פורסם 2013 בינואר 712 שנים אתה בכיוון, אבל עדיין לא מספיק טוב.תנסה לצייר על דף ועט את הרשימה המקושרת: כל חוליה ברשימה היא מלבן עם שני חלקים - הראשון מכיל את המידע, והשני מכיל מצביע (חץ) לחוליה הבאה ברשימה, וכמובן head מצביע לחוליה הראשונה. תחשוב בכל איטרציה של הלולאה מה קורה בדיוק (ממש תצייר על דף כל שלב ושלב).
פורסם 2013 בינואר 712 שנים מחבר אני מבין למה אתה מתכוון אבל אני מתחרפן ואני לא מצליח ליישם את זה לא נופל לי האסימון זה מחרפן אותי.
פורסם 2013 בינואר 712 שנים מחבר אני אבוד אם תוכל להסביר לי אני אודה לך מאוד....אני כבר כמה שעות מנסה ולא מצליח
פורסם 2013 בינואר 712 שנים מחבר #include<iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<stdlib.h>using namespace std;typedef struct id{ int data; struct id *next;}num;int sum(num*head){ int result=0; num *p=head; while (p!=NULL) { result=result+p->data; p=p->next; } return result;}void print(num*head){ num *p; p=head; while(p->next!=NULL) { cout<<p->data; p=p->next; } cout<<endl;}void add(num *head,int x){ num *id,*tmp; id=(num*)malloc(sizeof(num)); id->data=x; id->next=NULL; tmp=head; while(tmp->next!=NULL) tmp=tmp->next; tmp->next=id;}void mult(num*head,int n){ num*p=head; while(p!=NULL) { p->data=(p->data)*n; p=p->next; }}void main(){ num *head; int x,n; head=(num*)malloc(sizeof(num)); cout<<"enter first digit of your id: "; cin>>head->data; head->next=NULL; num*tmp; for(int i=0;i<8;i++) { cout<<"enter next digit: "; cin>>x; add(head,x); } cout<<"the id is: "; print(head); cout<<"the sum of the id is: "; cout<<sum(head)<<endl; cout<<"enter a digit to mult: "; cin>>n; mult(head,n); cout<<"the new id is: "; print(head);}
פורסם 2013 בינואר 712 שנים למה לא לנסות משהו כזה?#include <iostream>typedef struct id{ int data; struct id *next;} num;typedef struct linkedIDList{ num *head; num *last; unsigned int numLinks;} linkedIDList;void attachNewLink(linkedIDList *list, int data){ num *newLink; newLink = (num*)malloc(sizeof(num)); newLink->next = NULL; newLink->data = data; if(!list->head) { list->head = newLink; list->last = newLink; } else { list->last->next = newLink; list->last = newLink; } list->numLinks++;}void main(){ linkedIDList list; int digit; list.head = NULL; for(int i=0;i<9;i++) { std::cout << "enter next digit: "; std::cin >> digit; attachNewLink(&list, digit); }}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.