| draco892 Temat założony przez niniejszego użytkownika | Sortowanie zmiennych » 2016-01-12 22:44:03 Witam forumowiczów, poniżej kod źródłowy mojego programu. Problem polega na tym, że nie umiem posortować zmiennych c,d,e,f,g,h rosnąco, próbowałem już metodą bąbelkową i nie wyszło. #include<stdio.h>#include<stdlib.h>
 #include<conio.h>
 #include<time.h>
 
 int i, j, c, d, e, f, g, h, r, n;
 int a[ 1000 ];
 
 main()
 {
 srand( time( NULL ) );
 printf( "Podaj liczbe symulacji rzutu kostka(max1000) n=" );
 scanf( "%d", & n );
 n--;
 for( i = 0; i <= n; i++ )
 {
 a[ i ] = rand() % 6 + 1;
 printf( "%d ", a[ i ] );
 }
 
 c = d = e = f = g = h = 0;
 for( i = 0; i <= n; i++ )
 
 if( a[ i ] == 1 ) c++;
 else
 if( a[ i ] == 2 ) d++;
 else
 if( a[ i ] == 3 ) e++;
 else
 if( a[ i ] == 4 ) f++;
 else
 if( a[ i ] == 5 ) g++;
 else
 if( a[ i ] == 6 ) h++;
 
 {
 
 printf( "Ilosc jedynek: %d\n", c );
 printf( "Ilosc dwojek: %d\n", d );
 printf( "Ilosc trojek: %d\n", e );
 printf( "Ilosc czworek: %d\n", f );
 printf( "Ilosc piatek: %d\n", g );
 printf( "Ilosc szostek: %d\n", h );
 }
 
 system( "pause" );
 return 0;
 }
Będę wdzięczny za pomoc. | 
|  | 
| DejaVu | » 2016-01-12 22:45:38 | 
|  | 
| draco892 Temat założony przez niniejszego użytkownika | Do DejaVu » 2016-01-12 22:50:38 Dzięki, już widziałem ten link, chodzi o to, że nie potrafię zastosować metody bąbelkowej do tych danych. | 
|  | 
| michal11 | » 2016-01-13 00:02:07 Ale ty chcesz posortować tablicę a czy policzyć ile jest w niej poszczególnych liczb ? | 
|  | 
| draco892 Temat założony przez niniejszego użytkownika | Do michal11 » 2016-01-13 11:22:39 Obecnie program losuje liczby z przedziału od 1 do 6 i pokazuje ile jest jedynek, dwójek itd. za pomocą zmiennych c,d,e,f,g,h, potrzebuję posortować zmienne rosnąco, czyli żeby program pokazywał, że np. Liczba trójek<liczba jedynek<liczba szostek itd. | 
|  | 
| darko202 | » 2016-01-13 11:30:18 | 
|  | 
| mateczek | » 2016-01-13 12:09:21 w c++ się skompiluje ale w C nie ogarniam choć starałem się na strukturach !!! #include<stdio.h>#include<stdlib.h>
 #include<conio.h>
 #include<time.h>
 #include<iostream>
 
 int i, j, c, d, e, f, g, h, r, n;
 int a[ 1000 ];
 struct element {
 int wynik;
 int licznikTrafien;
 };
 
 element tablicaTrafien[ 6 ] { { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 } };
 
 main()
 {
 srand( time( NULL ) );
 printf( "Podaj liczbe symulacji rzutu kostka(max1000) n=" );
 scanf( "%d", & n );
 n--;
 for( i = 0; i <= n; i++ )
 {
 a[ i ] = rand() % 6 + 1;
 printf( "%d ", a[ i ] );
 }
 
 for( i = 0; i <= n; i++ )
 
 if( a[ i ] == 1 ) tablicaTrafien[ 0 ].licznikTrafien++;
 else
 if( a[ i ] == 2 ) tablicaTrafien[ 1 ].licznikTrafien++;
 else
 if( a[ i ] == 3 ) tablicaTrafien[ 2 ].licznikTrafien++;
 else
 if( a[ i ] == 4 ) tablicaTrafien[ 3 ].licznikTrafien++;
 else
 if( a[ i ] == 5 ) tablicaTrafien[ 4 ].licznikTrafien++;
 else
 if( a[ i ] == 6 ) tablicaTrafien[ 5 ].licznikTrafien++;
 
 {
 
 for( int i = 0; i < 6; i++ ) {
 for( int j = 0; j < 6 - 1; j++ ) {
 if( tablicaTrafien[ j ].licznikTrafien > tablicaTrafien[ j + 1 ].licznikTrafien ) {
 element temp = tablicaTrafien[ j ];
 tablicaTrafien[ j ] = tablicaTrafien[ j + 1 ];
 tablicaTrafien[ j + 1 ] = temp;
 }
 }
 }
 
 
 for( int i = 0; i < 6; i++ ) {
 std::cout << "liczb " << tablicaTrafien[ i ].wynik << " wylosowano " << tablicaTrafien[ i ].licznikTrafien << "razy" << std::endl;
 }
 
 }
 
 system( "pause" );
 return 0;
wynik działania programuhttp://zapodaj.net/images/ef2487cb62c57.png | 
|  | 
| mateczek | » 2016-01-13 12:25:14 if else nie są potrzebne można pominąć  #include<stdio.h>#include<stdlib.h>
 #include<conio.h>
 #include<time.h>
 #include<iostream>
 
 int i, j, c, d, e, f, g, h, r, n;
 int a[ 1000 ];
 struct element {
 int wynik;
 int licznikTrafien;
 };
 
 element tablicaTrafien[ 6 ] { { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 } };
 
 main()
 {
 srand( time( NULL ) );
 printf( "Podaj liczbe symulacji rzutu kostka(max1000) n=" );
 scanf( "%d", & n );
 n--;
 for( i = 0; i <= n; i++ )
 {
 a[ i ] = rand() % 6 + 1;
 printf( "%d ", a[ i ] );
 }
 
 for( i = 0; i <= n; i++ ) tablicaTrafien[ a[ i ] - 1 ].licznikTrafien++;
 
 for( int i = 0; i < 6; i++ ) {
 for( int j = 0; j < 6 - 1; j++ ) {
 if( tablicaTrafien[ j ].licznikTrafien > tablicaTrafien[ j + 1 ].licznikTrafien ) {
 element temp = tablicaTrafien[ j ];
 tablicaTrafien[ j ] = tablicaTrafien[ j + 1 ];
 tablicaTrafien[ j + 1 ] = temp;
 }
 }
 }
 std::cout << std::endl;
 
 for( int i = 0; i < 6; i++ ) {
 std::cout << "liczb " << tablicaTrafien[ i ].wynik << " wylosowano " <<
 tablicaTrafien[ i ].licznikTrafien << "razy" << std::endl;
 }
 
 }
 | 
|  | 
| « 1 »  2 |