Info2/2008tavasz/kuka
A MathWikiből
(Változatok közti eltérés)
7. sor: | 7. sor: | ||
ld a gyakorlaton: ~/info2/mx.c | ld a gyakorlaton: ~/info2/mx.c | ||
− | ==== | + | ==== Mutató jelölés, típuskényszerítés (casting) ==== |
~/info2/mx2.c | ~/info2/mx2.c | ||
+ | #include <stdio.h> | ||
+ | |||
+ | #define SOROKSZ 10 | ||
+ | #define OSZLOPOKSZ 10 | ||
+ | |||
+ | int legnagyobb(int *a, int oszsz, int ssz, int osz) | ||
+ | { | ||
+ | int i, j; | ||
+ | int mx = *a; | ||
+ | |||
+ | for( i = 0; i < ssz; i++) | ||
+ | for( j = 0; j < osz; j++) | ||
+ | if ( *(a + i*oszsz + j) > mx) | ||
+ | mx = *(a + i*oszsz + j); | ||
+ | return mx; | ||
+ | } | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | int t[SOROKSZ][OSZLOPOKSZ] = { {21, 42, 13}, | ||
+ | {35, 20, 15} }; | ||
+ | int ssz = 2; | ||
+ | int osz = 3; | ||
+ | int m; | ||
+ | |||
+ | m = legnagyobb( (int *)t, OSZLOPOKSZ, ssz, osz); | ||
+ | |||
+ | printf("A legnagyobb érték %d.\n", m); | ||
+ | return 0; | ||
+ | } | ||
A lap 2008. március 14., 07:00-kori változata
Tartalomjegyzék |
4. előadás (2008-03-14)
Tömbök átadása paraméterként
Index jelölés
ld a gyakorlaton: ~/info2/mx.c
Mutató jelölés, típuskényszerítés (casting)
~/info2/mx2.c
#include <stdio.h> #define SOROKSZ 10 #define OSZLOPOKSZ 10 int legnagyobb(int *a, int oszsz, int ssz, int osz) { int i, j; int mx = *a; for( i = 0; i < ssz; i++) for( j = 0; j < osz; j++) if ( *(a + i*oszsz + j) > mx) mx = *(a + i*oszsz + j); return mx; } int main() { int t[SOROKSZ][OSZLOPOKSZ] = { {21, 42, 13}, {35, 20, 15} }; int ssz = 2; int osz = 3; int m; m = legnagyobb( (int *)t, OSZLOPOKSZ, ssz, osz); printf("A legnagyobb érték %d.\n", m); return 0; }
Véletlen sorozat generálása
Véletlen számok generálása: rand() az stdlib.h betöltése után egy [0,RAND_MAX] = [0,INT_MAX] intervallumba eső egészt generál. random seed: srand( <szám> ) hívással befolyásolható az elsőnek generált -- és ezzel az összes -- szám, mivel ez csak álvéletlen sorozat. Valódi véletlenség látszatához használjuk a time( NULL ) függvényt.
~/info2/rand.c
#include <stdio.h> #include <stdlib.h> #include <time.h> int main (void) { int i; srand( (unsigned int) time( NULL )); // seed for (i=0; i<5; ++i) printf("%d ",rand()%64); // [0..RAND_MAX] printf("\n"); return 0; }