Esempio n. 1
0
void bolha_gen (int n, void* v, int tam, int(*cmp)(void*,void*)) {
	puts("Bolha");
	//Circulo* c;
	int i, j;
	void* p1;
	void* p2;
	for (i=n-1; i>0; i--) {
		int fez_troca = 0;
		for (j=0; j<i; j++) {
			p1 = acessa(v,j,tam);
			p2 = acessa(v,j+1,tam);
			if (cmp(p1,p2)) {
				troca(p1,p2,tam);
				fez_troca = 1;
			}
		}
		/*if (tam == sizeof(Circulo)){
			c = (Circulo*) p1;
			printf("Centro do circulo%-2i = \t(%.2f,%.2f)\tRaio = %.2f\tCor : R = %3i, G = %3i, B = %3i\n",n-i,c[n-i].centro.x,c[i].centro.y,c[i].raio,c[i].cor.r,c[i].cor.g,c[i].cor.b);
		}*/
		if (fez_troca == 0)   /* nao houve troca */
			return;

	}
}
Esempio n. 2
0
int main(int argc, char *argv[]){
 	int l, c, linha, coluna;
 	float y;
 	
 	Matriz* x;
	scanf("%d", &linha);
	scanf("%d", &coluna);
 	
	x = cria(linha, coluna);
	
	l = linhas(x);
	c = colunas(x);
	printf("\n%d\n", l);
	printf("\n%d\n", c);
	
	
	//y = acessa(x, linha, coluna);
	//printf("\n%f\n", y); //printa 0
	
	libera(x); //libera cria que é x
	
	//y = acessa(x, linha, coluna);
	//printf("\n%f\n", y); //printa o endereço de y
	
	atribui(x, linha, coluna, 10);
	
	y = acessa(x, linha, coluna); //Neste y = acessa vai ser conferido se realmente o 10 foi atribuido à matriz
	printf("\n%.2f\n", y); //printa o endereço de y depois de executar atribui. Tem que printar 10
	
	return 0;
}