[C] Tablica z losowymi wartościami
-
- Użytkownik
- Posty: 3
- Rejestracja: 14 lis 2013, o 21:18
- Płeć: Kobieta
- Lokalizacja: Polska
[C] Tablica z losowymi wartościami
Hej
Potrzebuje pomocy
mam wyświetlić tablice 4x4,w które będą się znajdować wartości losowe
a następnie podać najmniejsza i największa liczbę oraz średnią wszystkich 16 liczb.
Potrzebuje pomocy
mam wyświetlić tablice 4x4,w które będą się znajdować wartości losowe
a następnie podać najmniejsza i największa liczbę oraz średnią wszystkich 16 liczb.
Ostatnio zmieniony 15 lis 2013, o 13:17 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 22
- Rejestracja: 25 paź 2012, o 04:00
- Płeć: Mężczyzna
- Lokalizacja: wroclaw
- Pomógł: 3 razy
[C] Tablica z losowymi wartościami
Podaj kod programu, a wtedy ktoś podpowie,co dalej.....
Gotowca raczej się nie spodziewaj.
Gotowca raczej się nie spodziewaj.
-
- Użytkownik
- Posty: 3
- Rejestracja: 14 lis 2013, o 21:18
- Płeć: Kobieta
- Lokalizacja: Polska
[C] Tablica z losowymi wartościami
Mam coś takiego ale wyświetla mi same zera i nie wiem jak to naprawić i dalej ruszyć
Kod: Zaznacz cały
#include "stdafx.h"
int T[4][4];
int main (void)
{
int i,j;
for(i=1;i<4;i++)
{
for(j=1;j<4;j++)
{
T[i][j]=rand();
printf ("%f ",T[i][j]);
}}
getchar();
return 0;
}
}
-
- Użytkownik
- Posty: 219
- Rejestracja: 5 maja 2010, o 18:27
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 1 raz
- Pomógł: 75 razy
[C] Tablica z losowymi wartościami
Trudno samemu wpaść na to jak wygenerować "losowe" wartości, gdy dopiero zaczyna się programować.pawel_wr pisze:Podaj kod programu, a wtedy ktoś podpowie,co dalej.....
Gotowca raczej się nie spodziewaj.
Dwa rozwiązania:
1) deklarujesz lokalną tablicę rozmiaru \(\displaystyle{ 4\times 4}\), będzie miała wewnątrz losowe wartości (nie za dobry pomysł),
2) wpisujesz do tablicy losowe wartości - najpospolitszy sposób generowania (wszystkie będą nieujemne, ale łatwo to zmienić), musisz do swojego kodu dodać inicjalizację (w przybliżeniu) wartości funkcji rand():
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int losowe[4][4];
int maksimum = 1000;
int main(void)
{
srand(time(NULL));
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j) {
losowe[i][j] = rand() % 1000;
// wypisujemy dla pewnosci
printf("%d ", losowe[i][j]);
}
printf("
");
}
return 0;
}
-
- Użytkownik
- Posty: 3
- Rejestracja: 14 lis 2013, o 21:18
- Płeć: Kobieta
- Lokalizacja: Polska
[C] Tablica z losowymi wartościami
Ale właśnie mają być wszystkie wartości bez ograniczeń i mają ładnie w tabelce się wyświetlać by później można było zobaczyć czy największa i najmniejsza wartość to faktycznie te wartość
Musi się to zgadzać w tabelką
-- 14 lis 2013, o 21:58 --
i tego nam też zabronili używać i wpisywać
-- 14 lis 2013, o 22:03 --
czyli ja bym była za tą 1 wersją
Musi się to zgadzać w tabelką
-- 14 lis 2013, o 21:58 --
i tego nam też zabronili używać i wpisywać
srand(time(NULL));
-- 14 lis 2013, o 22:03 --
czyli ja bym była za tą 1 wersją
Ostatnio zmieniony 15 lis 2013, o 13:18 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C] Tablica z losowymi wartościami
raz, wszystkich wartości nie wyświetli, tylko z przedziału <0, RAND_MAX>
a dwa, skoro wszystkie, to oznacza to zmiennoprzecinkowe, a nie tylko całkowite (no, chyba że to ja się czepiam)
a dwa, skoro wszystkie, to oznacza to zmiennoprzecinkowe, a nie tylko całkowite (no, chyba że to ja się czepiam)
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
float losowe[4][4], najmniejsza, najwieksza, suma;
int i,j;
time_t zmienna;
srand(time(&zmienna)); // generuje nowy zarodek
for(i=0;i<4;++i)
{
for(j=0;j<4;++j)
{
losowe[i][j] = rand()+rand()/(RAND_MAX+1.0); // rand()/(RAND_MAX+1.0) spowoduje
// wylosowanie liczby zmiennoprzecinkowej
printf("%10.2f", losowe[i][j]); //10.2%f oznacza wyswietlenie liczby zmiennoprzecinkowej z
// 2 miejscami po przecinku w odstepie 10 znakow od poprzedzajacego znaku
suma+=losowe[i][j]; // sumuje liczby losowe
}
printf("
");
}
najwieksza=losowe[0][0];
najmniejsza=losowe[0][0];
for(i=0;i<4;i++)
for(j=0;j<4;j++){
if(najwieksza<losowe[i][j])
najwieksza=losowe[i][j];
if(najmniejsza>losowe[i][j])
najmniejsza=losowe[i][j];
}
printf("
Srednia wynosi: %.2f
", suma/16);
printf("Najwieksza liczba wynosi: %.2f
", najwieksza);
printf("Najmniejsza liczba wynosi: %.2f
", najmniejsza);
return 0;
}
-
- Użytkownik
- Posty: 219
- Rejestracja: 5 maja 2010, o 18:27
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 1 raz
- Pomógł: 75 razy
[C] Tablica z losowymi wartościami
(no to też się zaczepię)kalwi pisze: a dwa, skoro wszystkie, to oznacza to zmiennoprzecinkowe, a nie tylko całkowite (no, chyba że to ja się czepiam)
Raz: skoro wszystkie, to też ujemne - Twój kod ich nie uwzględnia.
Dwa: miało być raczej bez użycia funkcji srand().
Ładnie
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C] Tablica z losowymi wartościami
@up happy? : D
a co do sranda to można po prostu to wywalić, ale nie widzę jakiegokolwiek sensu, żeby go nie stosować (no, chyba, że sami mają za zadanie wygenerować nowy zarodek, to może wtedy..)
a co do sranda to można po prostu to wywalić, ale nie widzę jakiegokolwiek sensu, żeby go nie stosować (no, chyba, że sami mają za zadanie wygenerować nowy zarodek, to może wtedy..)
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
float losowe[4][4], najmniejsza, najwieksza, suma;
int i,j;
for(i=0;i<4;++i)
{
for(j=0;j<4;++j)
{
if((i+j)%2)
losowe[i][j] = (-(rand()+rand()/(RAND_MAX+1.0)));
else
losowe[i][j] = rand()+rand()/(RAND_MAX+1.0);
printf("%10.2f", losowe[i][j]);
suma+=losowe[i][j];
}
printf("
");
}
najwieksza=losowe[0][0];
najmniejsza=losowe[0][0];
for(i=0;i<4;i++)
for(j=0;j<4;j++){
if(najwieksza<losowe[i][j])
najwieksza=losowe[i][j];
if(najmniejsza>losowe[i][j])
najmniejsza=losowe[i][j];
}
printf("
Srednia wynosi: %.2f
", suma/16);
printf("Najwieksza liczba wynosi: %.2f
", najwieksza);
printf("Najmniejsza liczba wynosi: %.2f
", najmniejsza);
return 0;
}