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

Ασκήσεις C


dimihouse

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

  • Απαντ. 43
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

>#include <stdio.h>
#include <time.h>
#include "simpio.h"
#include "genlib.h"
#define  questions 5
int main()
{
       srand(time(NULL));
int i,j,k,n,m,q,b;
       printf("Welcome to match quiz\n");
       k=0;
for (k=0;k<questions;k++){
               q=rand()%2+1;
               i=15; j=20;
               switch (q){
                       case 1:while (i+j>20){
                                i=rand()%19+2;
                                j=rand()%19+2;
                                              	}
                               printf("What is %2d + %2d\n",i,j);
                               m=i+j ;
                               break ;
                       case 2: while (i-j<1){
                                       i=rand()%19+2;
                                       j=rand()%19+2;
                                                     	}

                               printf("What is %2d - %2d\n",i,j);
                               m=i-j ;
                               break ;
                                      	}
                n=GetInteger();
               b=0;
               if( m==n)
                       printf("That's the answer!\n");
               while ( m!=n){
                       printf("That's incorrect.Try a different answer\n");
                       b=b+1;
                       n=GetInteger();
                       if (b=2)
                               printf("No, the answer is %2d\n",m);
                       break;
}
}

}

 

 

> #include <stdio.h>
#include <time.h>
#include "simpio.h"
#include "genlib.h"
#define  questions 5
int main()
{
       srand(time(NULL));
int i,j,k,n,m,q,b,z;
       printf("Welcome to match quiz\n");
       k=0;
for (k=0;k<questions;k++){
               q=rand()%2+1;
               i=15; j=20;
               switch (q){
                       case 1:while (i+j>20){
                                i=rand()%19+2;
                                j=rand()%19+2;
                                              	}
                               printf("What is %2d + %2d\n",i,j);
                               m=i+j ;
                               break ;
                       case 2: while (i-j<1){
                                       i=rand()%19+2;
                                       j=rand()%19+2;
                                                     	}

                               printf("What is %2d - %2d\n",i,j);
                               m=i-j ;
                               break ;
                                      	}
                n=GetInteger();
               b=0;
               z=rand()%4+1;
               if( m==n)
                       switch(z){
                       case 1:printf("That's the answer!\n"); break;
                       case 2: printf("OMG you are genius\n"); break;
                       case 3: printf("awesome motherfucker\n"); break;
                       case 4: printf("correct little bastard\n"); break;
                               }
               while ( m!=n){
                       printf("That's incorrect.Try a different answer\n");
                       b=b+1;
                       n=GetInteger();
                       if (b=2)
                       printf("No, the answer is %2d\n",m);
                       break;
}
}

}

 

πριν τις βάλετε είχα κάνει τα παραπάνω άλλα τώρα θα προτιμήσω τις δικές σας λύσεις.......ευχαριστώ και παλι

 

---------- Προσθήκη στις 11:21 ---------- Προηγούμενο μήνυμα στις 11:09 ----------

 

Τώρα σίγουρα τον βοηθήσαμε...μακροπρόθεσμα μάλλον όχι. :-)

δεν νομίζω να χρειάζεται μακροπρόθεσμα να μάθω C αφού είμαι μαθηματικός!

Δημοσ.

Θα σου έπαιρνε λιγότερη ώρα να δώσεις έστω και tips παρά να γράψεις όλο αυτό. Πάντως αν είδες εξήγησα σχετικά αναλυτικά τι συμβαίνει με την παραγωγή τυχαίων αριθμών, δεν έδωσα στεγνά την απάντηση σε όλα του τα προβλήματα. Όσο για τη στατική που λες, είναι διαφορετική περίπτωση. Αν δεν είσαι σε θέση να χειριστείς σωστά τα εργαλεία μιας γλώσσας προγραμματισμού και να συντάσσεις αλγόριθμους με ορθότητα δεν πρόκειται να καταφέρεις να ασχοληθείς επαγγελματικά με αυτό.

Δημοσ.

Σιγά τι έγινε, θα τελειώσει μαθηματικός (αν λεει αλήθεια), θα θέλει να διοριστεί στο δημόσιο ως καθηγητής και δεν θα μπορεί σα μαθηματικός, θα δηλώσει πληροφορικός (ισως χρειαστεί και κανα σεμινάριο για να μαζέψει ώρες, ίσως και όχι) και θα γίνει καθηγητής πληροφορικής.

Οπότε ένας ακόμα άσχετος καθηγητής πληροφορικής στη δευτεροβάθμια εκπαίδευση που έχει μαζέψει κάθε καρυδιάς καρύδι (φυσικούς-μαθηματικούς-οικονομολόγους και άλλους άσχετους με την πληροφορική).

 

Βλέπω τα παιδιά των φίλων μου τι μαθαίνουν στα λύκεια...

Δημοσ.
Σιγά τι έγινε, θα τελειώσει μαθηματικός (αν λεει αλήθεια), θα θέλει να διοριστεί στο δημόσιο ως καθηγητής και δεν θα μπορεί σα μαθηματικός, θα δηλώσει πληροφορικός (ισως χρειαστεί και κανα σεμινάριο για να μαζέψει ώρες, ίσως και όχι) και θα γίνει καθηγητής πληροφορικής.

Οπότε ένας ακόμα άσχετος καθηγητής πληροφορικής στη δευτεροβάθμια εκπαίδευση που έχει μαζέψει κάθε καρυδιάς καρύδι (φυσικούς-μαθηματικούς-οικονομολόγους και άλλους άσχετους με την πληροφορική).

 

Βλέπω τα παιδιά των φίλων μου τι μαθαίνουν στα λύκεια...

 

Στην χρήση υπολογιστή είμαι πολύ καλύτερος από μεγάλο ποσοστό που τελειώνουν πανεπιστήμιο/ΤΕΙ πληροφορικής...στο λύκειο oι καθηγητές δεν χρειάζεται να ξέρουν προγραμματισμό άρα να είσαι σίγουρος ότι δεν θα είμαι ένας ακόμη άσχετος...άσε που μου αρέσει πολύ αυτό που σπουδάζω αν σπουδάζω κιόλας γιατί που ξες μπορεί να λέω και ψέματα μπορεί ναι είμαι κάνας τσομπάνης ...

Δημοσ.

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

Δημοσ.

>//Korrona-grammata
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int temp;
int korona=0;
int ct=0;

do
{
srand( time(NULL) );   
temp=rand()%2+1;

if (temp==1) 
{
   printf("Korona\n");
   korona=korona+1;
}
if (temp==2)
{
   printf("grammata\n");
}
ct=ct+1;
}
while (korona<3);
printf("Xreiastike %dfores gia na bgoyn 3 sinexomenes fores korona",ct);
system("PAUSE");
}

Τι λάθος έχω εγώ εδώ?

Δημοσ.

Κατ'αρχην βγάλε την κλήση στην srand έξω από το loop. Με τον τρόπο που το έχεις τώρα, σε κάθε επανάληψη ξαναθέτει το seed σε time(NULL) οπότε θα επιστρέφει την ίδια τιμή όσο δεν έχει αλλάξει δευτερόλεπτο.

 

Δεύτερον, απο ότι βλέπω στο printf σου, θέλεις να υπολογίζεις συνεχόμενες κορώνες. Αλλά δεν κάνεις κάτι τέτοιο. Αν για παράδειγμα φέρει 2 φορές κορώνα, μερικές φορές γράμματα και άλλη μια κορώνα, τότε το πρόγραμμα μετρά 3 κορώνες και βγαίνει από το loop. Το σωστό θα ήταν όταν αρχίσεις να μετράς κορώνες, να φροντίζεις ώστε αν εμφανιστεί μετά γράμμα, να ξαναμηδενίζεται το korona. Υπάρχουν διάφοροι τρόποι να το κάνεις αυτό. Σκέψου τι αλλαγές χρειάζεται να γίνουν στις συνθήκες των if σου.

 

Προσπάθησε το, και ξαναζήτα βοήθεια αν χρειαστείς.

Δημοσ.
Κατ'αρχην βγάλε την κλήση στην srand έξω από το loop. Με τον τρόπο που το έχεις τώρα, σε κάθε επανάληψη ξαναθέτει το seed σε time(NULL) οπότε θα επιστρέφει την ίδια τιμή όσο δεν έχει αλλάξει δευτερόλεπτο.

 

Δεύτερον, απο ότι βλέπω στο printf σου, θέλεις να υπολογίζεις συνεχόμενες κορώνες. Αλλά δεν κάνεις κάτι τέτοιο. Αν για παράδειγμα φέρει 2 φορές κορώνα, μερικές φορές γράμματα και άλλη μια κορώνα, τότε το πρόγραμμα μετρά 3 κορώνες και βγαίνει από το loop. Το σωστό θα ήταν όταν αρχίσεις να μετράς κορώνες, να φροντίζεις ώστε αν εμφανιστεί μετά γράμμα, να ξαναμηδενίζεται το korona. Υπάρχουν διάφοροι τρόποι να το κάνεις αυτό. Σκέψου τι αλλαγές χρειάζεται να γίνουν στις συνθήκες των if σου.

 

Προσπάθησε το, και ξαναζήτα βοήθεια αν χρειαστείς.

Οκ ευχαριστώ πολύ φίλε το κάνα...

Δημοσ.

ρε παιδια και μεις καναμε C στη σχολη(μοριακη βιολογια και γενετικη) μαλιστα περασα και το μα8ημα αλλα αυτα που καναμε ηταν τελειως ασχετα.για να σας δωσω να καταλαβετε μονο την printf() και τη while αναγνωριζω. αααα επισης καναμε και την scanf().επειδη σε επομενο 6μηνο εχουμε C++ 3ερει κανεις αν σχετιζετε με ολα τα παραπανω τα οποια πραγματικα βλεπω πρωτη φορα(χωρις αυτο να συμενει οτι δεν εχω ιδεα απο C).

Δημοσ.
ρε παιδια και μεις καναμε C στη σχολη(μοριακη βιολογια και γενετικη) μαλιστα περασα και το μα8ημα αλλα αυτα που καναμε ηταν τελειως ασχετα.για να σας δωσω να καταλαβετε μονο την printf() και τη while αναγνωριζω. αααα επισης καναμε και την scanf().επειδη σε επομενο 6μηνο εχουμε C++ 3ερει κανεις αν σχετιζετε με ολα τα παραπανω τα οποια πραγματικα βλεπω πρωτη φορα(χωρις αυτο να συμενει οτι δεν εχω ιδεα απο C).

 

Μόνο αυτά κάνατε η μήπως δεν παρακολουθούσες?

Δημοσ.
Μόνο αυτά κάνατε η μήπως δεν παρακολουθούσες?

 

μονο αυτα...στο συγκεκριμενο μα8ημα δεν ειχα χασει διαλε3η.Στο συγγραμμα που πηραμε βεβαια αναφερει και καποιες αλλες εντολες αλλα ο καθηγητης μας ειπε πως το βιβλιο ειναι κακογραμμενο με πολλες ασαφιες και λα8η και πως απλως το προτεινε γιατι ετσι τον υποχρεωνει το υπουργειο...Εμενα ομωςδεν με απασχολει τοσο αυτο οσο το αν για την C++ αρκουν οι εντολες που 3ερω με βαση την παρουσα κατασταση ή αν ειναι απαραιτητες και οσες εχουν προαναφερθει στα posts.

Δημοσ.
μονο αυτα...στο συγκεκριμενο μα8ημα δεν ειχα χασει διαλε3η.Στο συγγραμμα που πηραμε βεβαια αναφερει και καποιες αλλες εντολες αλλα ο καθηγητης μας ειπε πως το βιβλιο ειναι κακογραμμενο με πολλες ασαφιες και λα8η και πως απλως το προτεινε γιατι ετσι τον υποχρεωνει το υπουργειο...Εμενα ομωςδεν με απασχολει τοσο αυτο οσο το αν για την C++ αρκουν οι εντολες που 3ερω με βαση την παρουσα κατασταση ή αν ειναι απαραιτητες και οσες εχουν προαναφερθει στα posts.

 

Από προγραμματισμό δηλαδή μόνο c έχετε κάνει?Σε τι σχολή είσαι?

Δημοσ.

μοριακη βιολογια και γενετικη. ναι μονο C και κατι λιγα απο unix( αλλα αυτο δεν 8εωρειται προγραμματισμος)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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