Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Στις loops σου πάντα προσθέτεις κάτι στις λίστες, αλλά τσεκάρεις το στοιχείο i, που δεν του αλλάζεις την τιμή πάρα μόνο στην εξωτερική λούπα.

Μεσα στη λουπα της while διαβαζει τιμες απο το χρηστη,γιαυτο δε μεταβαλλω καποιον δεικτη.

Δημοσ.

Καλυτερα δεν ειναι να μαθεις να το φτιαχνεις μονος σου, απο το να σου πω τα λαθη;

Σιγουρα ναι! Οπως και να εχει ευχαριστω πολυ για το χρονο σου! Πιθανον αν δε τα καταφερω μεχρι το βραδυ να σου στειλω.

Νομιζω καταλαβα που ωφειλεται το προβλημα.Στο γεγονος οτι χρησιμοποιω την εντολη list.add η οποια δεν χρησιμοποιει δεικτη. Αρα στην ουσια καθε φορα που δινω λαθος τιμη , απλως γεμιζω τη λιστα μου με επιπλεον στοιχεια.

Δημοσ.

Ακόμη πάντως δεν μας έβαλες όλο τον κώδικα να ρίξουμε μια ματιά

Το προβλημα ολο βρισκεται εδω

for (i = 0; i < k; i++)

{

 

do

{

list.Add(int.Parse(Console.ReadLine()));

 

} while ((list < 0) || (list > 1000));

 

 

do

{

 

list1.Add(int.Parse(Console.ReadLine()));

 

} while ((list1 < 0) || (list1 > list));

 

}

Η συναρτηση list.add δεν εχει δεικτη. Καθε φορα που διαβαζει τιμη την τοποθετει στην επομενη θεση. Πχ εστω οτι πληκτρολογω τις τιμες -15 , 2000, -158, 500 , εγω θεωρουσα οτι στη θεση i θα μπει η τιμη 1500. Ομως στη θεση i μπηκε η -15 στη θεση i+1 η 2000 στη θεση i+2 η -158.

Δημοσ.

Το προβλημα ολο βρισκεται εδω

for (i = 0; i < k; i++)

{

 

do

{

list.Add(int.Parse(Console.ReadLine()));

 

} while ((list < 0) || (list > 1000));

 

 

do

{

 

list1.Add(int.Parse(Console.ReadLine()));

 

} while ((list1 < 0) || (list1 > list));

 

}

Η συναρτηση list.add δεν εχει δεικτη. Καθε φορα που διαβαζει τιμη την τοποθετει στην επομενη θεση. Πχ εστω οτι πληκτρολογω τις τιμες -15 , 2000, -158, 500 , εγω θεωρουσα οτι στη θεση i θα μπει η τιμη 1500. Ομως στη θεση i μπηκε η -15 στη θεση i+1 η 2000 στη θεση i+2 η -158.

Αν και δεν ξέρω από C#:

Αν θέλεις να βάλεις στην λίστα μόνο συγκεκριμένα νούμερα πρέπει να βάλεις μια μεταβλήτή μέσα στο loop που θα διαβάζει μέχρι να πάρεις κάποια τιμή που θέλεις και μετά αυτήν να βάλεις στην λίστα. Δηλαδή κάτι τέτοιο

int input;
do{
   input = int.Parse(Console.ReadLine()));
}while(input < 0 || input > 1000}
list.Add(input)

Ωστέ να εισαχθεί μόνο η τιμή που θέλεις. Έτσι όπως το κάνεις βάζεις συνέχεια τιμές στην λίστα και μάλιστα θα βγεις από το loop μόνο αν είσαι τυχερός και στην πρώτη θέση της λίστας βάλεις ένα νούμερο που περνάει την συνθήκη του do .. while

  • Like 1
Δημοσ.

Αν και δεν ξέρω από C#:

Αν θέλεις να βάλεις στην λίστα μόνο συγκεκριμένα νούμερα πρέπει να βάλεις μια μεταβλήτή μέσα στο loop που θα διαβάζει μέχρι να πάρεις κάποια τιμή που θέλεις και μετά αυτήν να βάλεις στην λίστα. Δηλαδή κάτι τέτοιο

int input;
do{
   input = int.Parse(Console.ReadLine()));
}while(input < 0 || input > 1000}
list.Add(input)
Ωστέ να εισαχθεί μόνο η τιμή που θέλεις. Έτσι όπως το κάνεις βάζεις συνέχεια τιμές στην λίστα και μάλιστα θα βγεις από το loop μόνο αν είσαι τυχερός και στην πρώτη θέση της λίστας βάλεις ένα νούμερο που περνάει την συνθήκη του do .. while
Ακριβως αυτο ηθελε. Το θεμα ηταν οτι δουλεψα πρωτη φορα με λιστες και δε το γνωριζα.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...