Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define size 8
- //prototypes
- double nadjiMax(double *povrsine);
- double nadji(double *povrsine,double max);
- void charUNiz(char c, double bitArray[8]) ;
- int main(){
- double povrsine[size]={10,40,60,35,25,24,72,1};
- double max=nadjiMax(povrsine);
- double maxSuma=nadji(povrsine,max);
- printf("Procenat= %lf (( %lf je max suma ))",(maxSuma/max)*100, maxSuma);
- return 0;
- }
- double nadjiMax(double *povrsine){
- int i;
- double max=povrsine[0];
- for(i=1;i<size;i++)
- if(max<povrsine[i])
- max=povrsine[i];
- return max;
- }
- void charUNiz(char c, double bitArray[8]) {
- int i;
- for ( i = 0; i < 8; i++) {
- bitArray[i] = (c & (1 << (7 - i))) ? 1.0f : 0.0f;
- }
- }
- double nadji(double *povrsine,double max){
- //izbacivanje maxa iz niza
- unsigned char maska;
- double maskaNiz[8];
- int i,j;
- double trazeni=0,trazeniTrenutni;
- for(i=0;i<size;i++){
- if(povrsine[i]==max){
- for(j=i;j<size-1;j++)
- povrsine[j]=povrsine[j+1];
- break;
- }
- }
- //maks izbacen, sad pravimo sve kombinacije i vracamo najvecu
- for(maska=1;maska!=0;maska++){
- charUNiz(maska,maskaNiz);
- for(i=0,trazeniTrenutni=0;i<size-1;i++){
- trazeniTrenutni+=povrsine[i]*maskaNiz[i+1];
- }
- if(trazeni<trazeniTrenutni&&trazeniTrenutni<max)
- trazeni=trazeniTrenutni;
- }
- return trazeni;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement