ljmocic/PJISP — pull request #42 by vukse95 (2014-11-04 20:49:22+00:00)
Title: zad2kolokvijum_V4.c

/* 2. Niz (maks 20). Ucitaj niz.
Da li ima vise poz ili neg brojeva u nizu.
Ako ima vise poz onda sve neg pretvoriti u poz.
Obrnuto, sve poz u neg.
Ako ih ima jednako onda ostavi isti niz.
Ispisi niz.
Za maks broj bodova u ovom treba napisati funkcije,
koje ce gledati koliko ima poz i neg u nizu. -Dzunja citat*/

#include
#include

#define MAX 20
#define POZITIVNO 65 //A
#define NEGATIVNO 66 //B
#define JEDNAKO 67 //C

char brojacZnaka(int niz[], int n);
void ispisNiza(int niz[], int n);
void pretvaracZnaka(int niz[], int n, char znak);

int main()
{
int niz[MAX] = {0};
int n;

do
{
printf("Unesite n:");
scanf("%d", &n);
}
while(n <= 0 || n > 20);

printf("\nUnesite clanove niza:\n");

for(int i = 0; i < n; i++)
{
printf("n[%d]:", i + 1);
scanf("%d", &niz[i]);
printf("\n");
}

pretvaracZnaka(niz, n, brojacZnaka(niz, n));

return 0;
}

char brojacZnaka(int niz[], int n)
{
int brPozitivnih = 0;
int brNegativnih = 0;

for(int i = 0; i < n; i++)
{
if(niz[i] > 0)
{
brPozitivnih++;
}
else if(niz[i] < 0)
{
brNegativnih++;
}
}
if(brPozitivnih == brNegativnih)
{
//ispisNiza(niz, n);
return JEDNAKO;
}
else if(brPozitivnih > brNegativnih)
{
return POZITIVNO;

}
else if(brPozitivnih < brNegativnih)
{
return NEGATIVNO;
}
}

void ispisNiza(int niz[], int n)
{
printf("\n\n");

for(int i = 0; i < n; i++)
{
printf("n[%d]: %d\n", i+1, niz[i]);
}
}

void pretvaracZnaka(int niz[], int n, char znak)
{
switch(znak)
{
case POZITIVNO:
{
for(int i = 0; i < n; i++)
{
if(niz[i] < 0)
{
niz[i] = niz[i] * (-1);
}
}
ispisNiza(niz, n);
}
break;
case NEGATIVNO:
{
for(int i = 0; i < n; i++)
{
if(niz[i] > 0)
{
niz[i] = niz[i] * (-1);
}
}
ispisNiza(niz, n);
}
break;
case JEDNAKO:
{
ispisNiza(niz, n);
}
break;
default:
{
ispisNiza(niz, n);
}
}
}