View Single Post
Staro 18.05.2009., 21:49   #6
_hmp_
Premium
 
Datum registracije: Dec 2008
Lokacija: Zagreb
Postovi: 31
Citiraj:
Autor Imamic23 Pregled postova
ne, ja koristin (float) rand()/(float)(GG-DG+1)+DG
jer moramo generirat float brojeve u polje...
Aha, al jos uvijek mi nije jasno kako onaj tko ti je zadao zadatak misli ispitat parnost broja iz skupa R?

EDIT:

Evo frend me nazico da mu rijesim taj zadatak, ocito je to DZ na TVZ-u, kolegij programiranje. Napravio sam tako da provjerim da li je cijeli dio broja paran, neznam kako bi drugacije.

Code:
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#define ranrange(a, b) ((a) + rand()/(RAND_MAX + 1.0) * ((b) - (a) + 1))
#define GG 30.
#define DG 10.
#define LOW 3
#define HIGH 30

void prov(float *p1, float *p2, float *p3, int *np, int *nn, int n) {
	int i=0,k;
	*np=0; *nn=0;
	for (i=0;i<n;i++) {
		k= (int) *(p1+i);
		if (!(k%2)) {
			*(p2+(*np)) = *(p1+i);
			(*np)++;
		}
		else {
			*(p3+(*nn))=*(p1+i);
			(*nn)++;
		}
	}				
}
		
int main(void) {
	int i, n, pk, pn;
	float *ar,*par,*nep;
	srand(time(NULL));
	do {
		printf("Unesite velicinu polja\n");
		scanf("%d", &n);
	}
	while (n<LOW || n>HIGH);
	ar=(float *) malloc(n*sizeof(float));
	par=(float *) malloc(n*sizeof(float));
	nep=(float *) malloc(n*sizeof(float));
	
	for (i=0;i<n;i++) {
		*(ar+i) = ranrange(GG,DG);
		printf("%f\t", *(ar+i));
		}
	
	prov(ar,par,nep,&pk,&pn,n);
	
	printf("\nParni:\n");
	for (i=0; i<pk; i++)
	printf("%f\t", *(par+i));
	
	printf("\nNeparni:\n");
	for (i=0; i<pn; i++)
	printf("%f\t", *(nep+i));
	free(ar);
	free(par);
	free(nep);
	return 0;
}
Malo je glup, zauzima previse memorije, koristi visak varijabli, ali mi ga se ne da optimizirat

Zadnje izmijenjeno od: _hmp_. 19.05.2009. u 10:19.
_hmp_ je offline   Reply With Quote