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

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

Δημοσ.
Αυτη ειναι η εργασια που εχουμε για το 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);
}
\


Βγαζει σωστα την ριψη ζαριων, τα αθροισματα αλλα ο πινακας δεν ειναι σωστος.

 

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

Δημοσ.

Αρχικά κάτι γίνεται εδώ με τους δείκτες, μήπως εννοείς το παρακάτω?:

table[j] = l;
printf(" ta apotelesmata einai %d\n",table[j]);

Μετά για τη συχνότητα μπορείς να κάνεις κάτι τέτοιο για να γλιτώσεις τα if else:

int freq[12] = {0}
freq[l-1]++;
  • Like 1
Δημοσ.

Βασικα με βοηθησε ενας συμφοιτητης. Ολα οσα ειχα γραψει ηταν περιττα, υπηρχε και ποιος ευκολος τροπος. Ευχαριστω παντως.

Δημοσ.

Πάρε και μια ιδέα και απο εμενα!

#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;
}

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

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

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

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

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

Σύνδεση

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

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