overpower Δημοσ. 24 Ιανουαρίου 2015 Δημοσ. 24 Ιανουαρίου 2015 Αυτη ειναι η εργασια που εχουμε για το 6μηνο. Να γράψετε ένα πρόγραμμα που θα προσομοιώνει το ρίξιμο των ζαριών. Το πρόγραμμα θα πρέπει να χρησιμοποιεί την rand για το ρίξιμο του πρώτου ζαριού και στην συνέχεια την ίδια συνάρτηση για το ρίξιμο του δευτέρου ζαριού. Στην συνέχεια θα υπολογίζεται το άθροισμα των δύο τιμών. Αφού κάθε ζάρι μπορεί να δείξει μια ακέραια τιμή από το 1 μέχρι το 6, το άθροισμα των δυο ζαριών θα κυμαίνεται από 2 έως 12. Το πρόγραμμά σας θα πρέπει να ρίχνει τα ζάρια 36.000 φορές και να αποθηκεύει το άθροισμα των τιμών σε ένα πίνακα ισάριθμων θέσεων. Μετρήστε την συχνότητα των αποτελεσμάτων σε αυτών των πίνακα και τυπώστε τα αποτελέσματα στην οθόνη. Ποιο είναι το συνηθέστερο άθροισμα των δυο τιμών (π.χ. 12 ) και ποιο το λιγότερο σύνηθες; Πόσες διπλές ήρθαν; Αυτο οτι εχουμε κανει μεχρι τωρα. #include <stdio.h> #include <stdlib.h> int main(){ int j; int i,n,k,l,o,p ; time_t t; n= 1; k= 1; int table[36000]; int z; int count2=0; int count3=0; int count4=0; int count5=0; int count6=0; int count7=0; int count8=0; int count9=0; int count10=0; int count11=0; int count12=0; for ( z=1 ;z<11 ;z++ ) { table[z]=0; } srand((unsigned) time(&t)); //Auto peta ta zaria oses fores leei:) for( j=0 ;j<3 ;j++ ) { printf("prwto zari:"); for( i = 0 ; i < n ; i++ ) { o = 1+( rand() % 6); printf("%d\n",o); } printf("deutero zari:"); for( i = 0 ; i < k ; i++ ) { p = 1+( rand() % 6); printf("%d\n",p); } l = o+p; table[3]=l; printf(" ta apotelesmata einai %d\n",table[z]); if (table[z]=2) { count2++; printf("To pio suxno athroisma einai to 2"); } else if (table[z]=3) { count3++; printf("To pio suxno athroisma einai to 3"); } else if (table[z]=4) { count4++; printf("To pio suxno athroisma einai to 4"); } else if (table[z]=5) { count5++; printf("To pio suxno athroisma einai to 5"); } else if (table[z]=6) { count6++; printf("To pio suxno athroisma einai to 6"); } else if (table[z]=7) { count7++; printf("To pio suxno athroisma einai to 7"); } else if (table[z]=8) { count8++; printf("To pio suxno athroisma einai to 8"); } else if (table[z]=9) { count9++; printf("To pio suxno athroisma einai to 9"); } else if (table[z]=10) { count10++; printf("To pio suxno athroisma einai to 10"); } else if (table[z]=11) { count11++; printf("To pio suxno athroisma einai to 11"); } else if (table[z]=12) { count12++; printf("To pio suxno athroisma einai to 12"); } /*if (count10 > count3,count10 > count4,count10 > count5,count10 > count6,count10 > count7,count10 > count8,count10 > count9,count10 > count2,count10 > count11,count10 > count12) { printf("To pio suxno athroisma einai to 10"); } /*if (count2 > count4 ) if (count2 > count5 ) if (count2 > count6 ) if (count2 > count6 ) if (count2 > count )*/ printf("~~~~~~~~~~~~~~~~~~\n"); } return (0); } \ Βγαζει σωστα την ριψη ζαριων, τα αθροισματα αλλα ο πινακας δεν ειναι σωστος. Επισης, πως μπορουμε να βρουμε ποια συχνοτητα ειναι μεγαλυτερη? Σκεφτηκα να το κανω με πινακα και αντιμεταθεση, αλλα νομιζω ειναι πιο δυσκολο.
javavall Δημοσ. 24 Ιανουαρίου 2015 Δημοσ. 24 Ιανουαρίου 2015 Αρχικά κάτι γίνεται εδώ με τους δείκτες, μήπως εννοείς το παρακάτω?: table[j] = l; printf(" ta apotelesmata einai %d\n",table[j]); Μετά για τη συχνότητα μπορείς να κάνεις κάτι τέτοιο για να γλιτώσεις τα if else: int freq[12] = {0} freq[l-1]++; 1
overpower Δημοσ. 25 Ιανουαρίου 2015 Μέλος Δημοσ. 25 Ιανουαρίου 2015 Βασικα με βοηθησε ενας συμφοιτητης. Ολα οσα ειχα γραψει ηταν περιττα, υπηρχε και ποιος ευκολος τροπος. Ευχαριστω παντως.
vacilis Δημοσ. 25 Ιανουαρίου 2015 Δημοσ. 25 Ιανουαρίου 2015 Πάρε και μια ιδέα και απο εμενα! #include <iostream> using namespace std; int main() { int syxn[12]; int sums[36000]; int zari1; int zari2; int diples=0; srand ( time(NULL) ); for( int nullit = 1; nullit <= 12; nullit++ ) { syxn[nullit] = 0; } for( int i = 1; i <= 36000; i++ ) { zari1 = rand()%6 + 1; zari2 = rand()%6 + 1; if (zari1 == zari2){ diples = diples +1; } int sum = zari1 + zari2; sums[i]=sum; syxn[sum] = syxn[sum] +1; } int max1=syxn[2]; int max_num=2; int min1=syxn[2]; int min_num=2; for( int a = 3; a <= 12; a++ ) { if (syxn[a]> max1){ max1 = syxn[a]; max_num=a; } if (syxn[a]< min1){ min1 = syxn[a]; min_num=a; } } cout <<"Diples: "<< diples<<endl; cout <<"Synithestero athroisma: "<< max_num<<endl; cout <<"Ligotero synithes: "<< min_num<<endl; return 0; }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα