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

Ευκολη άσκση στην c


nik324

Ερώτηση

Η ασκηση λέει ότι N μελλοθάνατοι μπαίνουν σε ένα κύκλο κοιτάζοντας ο καθένας την πλάτη του μπροστινού

του. Ο πρώτος παίρνει ένα μαχαίρι. Ο πρώτος σκοτώνει το δεύτερο και δίνει το μαχαίρι στον

τρίτο, αυτός σκοτώνει τον τέταρτο και δίνει το μαχαίρι στον πέμπτο κ.ο.κ., μέχρι κάποιος

να μείνει τελευταίος. Γράψτε ένα πρόγραμμα (hw2c.c) που να διαβάζει έναν αριθμό N από το

πληκτρολόγιο, να παίζει το παιχνίδι, και να τυπώνει τον αριθμό του κρατούμενου που μένει

τελευταίος.

 

Καταρχάς δεν θέλω να μου την λύσεται την άσκηση! Το μόνο που θέλω είνια να μου πέιτε εάν ο τρόπος με τον οποίο σκέυτομαι είναι σωστός...Πάντως είναι η πρώτη άσκηση που λύνω και νομίζω ότι για έναν αρχάριο δεν είναι κάτι εύκολο.

 

Λοιπόν...Λέω να χρησιμοποιήσω έναν πίνακα ο οποιος θα έχει περιέχει τους αριθμούς 1 μέχρι Ν....Αρχικά θα γίνεται μία προσπέλαση του πίνακα και σε κάθε κελί που θα σκοτώνεται κάποιος θα αντικαταστείται το περιεχόμενο του με μηδέν.Στη συνέχεια το πρόγραμμα θα ξανα αρχίζει την προσπέλαση του πίνακα από την αρχή και κάθε φορά που θα διαβάζεται σαν το περιεχόμενο του κελιού του πίνακα το μηδέν θα αποθηκεύει στο αμέσως επόμενο κελί το μηδέν.

Δεν ξέρω κατα πόσο είναι σωστή η σκέψη μου...Ακού τις γνώμες σας και μια πιθανή καλύτερη ιδέα

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • Απαντήσεις 99
  • Δημιουργία
  • Τελευταία απάντηση

Συχνή συμμετοχή στην ερώτηση

Συχνή συμμετοχή στην ερώτηση

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

  • 0

Το σκέφτεσαι πολύπλοκα, βασικά δεν χρειάζεσαι καν πίνακες (ή δομές δεδομένων -εκτός και αν στις ζητά η άσκηση οπωσδήποτε), μπορείς να το λύσεις διαβάζοντας με πολύ προσοχή τις οδηγίες μόνο με μερικές απλές εντολές, δες το και ξαφνικά θα σου κάνει κλικ οπωσδήποτε!

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

>Καταρχάς δεν θέλω να μου την λύσεται την άσκηση! Το μόνο που θέλω είνια να μου πέιτε εάν ο τρόπος με τον οποίο σκέυτομαι είναι σωστός...Πάντως είναι η πρώτη άσκηση που λύνω και νομίζω ότι για έναν αρχάριο δεν είναι κάτι εύκολο.

 

αν ρωτάς αν σκέφτεσαι σωστά για προγραμματιστής - σαν προγραμματιστής απλά θα σου πω ενα απλό οχι, τέτοιες βλακείες δεν σε βοηθάνε ιδιαίτερα, και λέω ιδιαίτερα γιατί ως γνωστόν η εξάσκηση από μόνη της βοηθάει συνήθως σε κάτι που ξέρεις...

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

αφου παντα αυτος που θα μεινει ειναι περιτος αριθμος ,θα ελενχεις αν το ν ειναι περριτος ή αρτιος,

αν ειναι περριτος αυτος θα μεινει τελευταιος ειναι το ν αν οχι ο προηγουμενος.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

αφου παντα αυτος που θα μεινει ειναι περιτος αριθμος ,θα ελενχεις αν το ν ειναι περριτος ή αρτιος,

αν ειναι περριτος αυτος θα μεινει τελευταιος ειναι το ν αν οχι ο προηγουμενος.

 

 

Yes.. exactly!

 

+1.

 

Να συμπληρώσω πως ο κώδικας είναι, μαζί με την δομή ελέγχου, 6 γραμμές :P

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Yes.. exactly!

 

+1.

 

Να συμπληρώσω πως ο κώδικας είναι, μαζί με την δομή ελέγχου, 6 γραμμές :P

ειναι ευκολη στην τριτη λυκειου καναμε πολυ πιο δυσκολες.

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Yes.. exactly!

 

+1.

 

Να συμπληρώσω πως ο κώδικας είναι, μαζί με την δομή ελέγχου, 6 γραμμές :P

Βάλε μερικές ακόμη αν θέλει και εκτύπωση για να φανεί ότι ο Η/Υ παίζει το παιχνίδι :P

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Πρώτη άσκηση είναι που λύνω...λογικό δεν είναι να μην σκέυτομαι σωστα;

Λογικό είναι, κανείς δεν έγινε σοφός σε μια στιγμή, καλή συνέχεια & καλή μελέτη! :)

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

εάν έχεις ενα array N έστω int A[N]

τότε εάν A[j] != 0 , j = (j+2) mod N , οπου j o ετοιμοθάνατος αλλιώς μπορείς να αυξάνεις το j κατα 1

αυτά μέσα σε ένα loop που θα κοιτά εάν έχουν πεθάνει όλοι -> πόσοι πέθαναν (i) και πόσοι μένουν (N)

 

code: [Πριν δείς την απάντηση προσπάθησε να το λύσεις μόνος σου]

 

 

>
#include <stdio.h>
#define N 100

int main(void){
int A[N],i,j=0;
for(i=0;i<100;++i)
	A[i] = i+1;
i = 0;
while(j < N){
	if(A[i]){
		printf("%3d died..\n",A[i]);
		A[i] = 0;
		i = (i+2) % N;
		++j;

	}
	else
		++i;
}
return 0;
}

 

 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Βάλε μερικές ακόμη αν θέλει και εκτύπωση για να φανεί ότι ο Η/Υ παίζει το παιχνίδι :P

 

Εάν κάνει εκτύπωση τότε είναι πιο λίγες.. :P

 

Π.χ.

 

 

>
01 int a, indx;
02 scanf("%d", &a);
03 for ( indx = 1; indx < a; indx += 2 ){
04  printf("O %d skotonei ton %d\n", indx, indx+1);
05  if ( indx+2 <= a ){
06    printf("To maxairi paei ston %d\n", indx+2);}}

 

 

 

Υ.Γ. Βασικά βγήκαν ακριβώς 6 :P

αλλά δεν λέει ποιος μένει ζωντανός στο τέλος (βέβαια υπονοείται :P )

αλλά ούτε και λέει να δοθεί αριθμός (εντάξει, "έκλεψα" λίγο :P )

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Εάν κάνει εκτύπωση τότε είναι πιο λίγες.. :P

[..]

αλλά δεν λέει ποιος μένει ζωντανός στο τέλος (βέβαια υπονοείται :P )

αλλά ούτε και λέει να δοθεί αριθμός (εντάξει, "έκλεψα" λίγο :P )

;)

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Παιδια ευχαριστώ πολύ για τις απαντήσεις σας...Θα δυσκολευόμουνα να την λύσω μόνος μου...Και μου φάινεται λογικό μιας και στην πολύ που σπουδάζω δεν μου έχουν κάνει ακόμα την σύνδεση του ιντερνετ και επίσης δεν έχω βιβλία...Οπότε όπως καταλαβαίνετε ότι ''πιάσω'' από την διάλεξη που και εκεί είναι ακόμα αρχή και το αμφιθέατρο είναι γεμάτο και γίνεται πολύ φασαρία και πολές φορές μου ξεφεύγει κάτι...Τελός πάντων δεν τα λέω αυτά για δικαιολογία...Το κακό είναι ότι έχω μια σειρά ασκήσεων με και άλλες δύο σε δύο αλλά μαθήματα και έχω μείνει πίσω γτ τώρα γύρισα στο σπίτι μου :@ :@ :@ :@ :@ :(

 

Μια ερώτηση τώρα...Ποιο IDE έχετε;

Ποιον προτήνετε;;

Προς το παρών συνδέομαι με το putty (δεν ξέρω αν το πρόγραμμα αυτό είναι ευρέος διαδεδομένο η αν είναι πατέντα της δικιάς μου σχολής) και γράφω στο πικο το πηγαίο πρόγραμμα και κάνω Compile με τον gcc

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

...

Μια ερώτηση τώρα...Ποιο IDE έχετε;

Ποιον προτήνετε;;

Προς το παρών συνδέομαι με το putty (δεν ξέρω αν το πρόγραμμα αυτό είναι ευρέος διαδεδομένο η αν είναι πατέντα της δικιάς μου σχολής) και γράφω στο πικο το πηγαίο πρόγραμμα και κάνω Compile με τον gcc

 

Pico;;; Πω πω, line-editor δεν είναι αυτός;;;;;;

 

Για C/C++, cross-platform, με ενσωματωμένη έκδοση του gcc για Windows (mingw) σε ξεχωριστό download: Code::Blocks

 

Για σκέτη C, windows only, με δικό της compiler: Pelles C

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.