Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- typedef int ARRAY_10_10[3][3];
- typedef int ARRAY_100[100];
- int uporedi(int a, int b);
- void zadatak1(void);
- void srv(int n, int zadatiBroj, float* srv);
- void zadatak2(void);
- void postoji(int X[], int n, int broj, int *pozicija);
- void izbaci(int X[], int *n, int position);
- void prikazNiy(int X[], int n);
- void zadatak3(void) {
- int X[] = { 1,3,4,5,3,3,2,1,2,4,6 };
- int n = 11;
- int pozicija;
- printf("\nNiz sa duplikatima je:");
- prikazNiy(X, n);
- for (int i = 0; i < n; i++)
- {
- postoji(X, n, X[i], &pozicija);
- if (pozicija != i) {
- izbaci(X, &n, pozicija);
- i--;
- }
- }
- printf("\nNiz bez duplikata je:");
- prikazNiy(X, n);
- }
- int nadjiNajveciParniElementNiza(ARRAY_100 x, int n);
- void sortirajNiz(ARRAY_100 x, int n);
- void ubaciNoviElementUSortiranomRedosledu(ARRAY_100 x, int *n, int noviEl);
- void prikaziNiz(ARRAY_100 x, int n);
- void zadatak4(void);
- int sumaZadatogRedaMatrice(ARRAY_10_10 M, int n, int m, int red);
- void najveciElementZadatogRedaMatrice(ARRAY_10_10 M, int n, int m, int red, int *najveci);
- void formirajNizOdParnihElemenatMatriceBezPonavljanja(ARRAY_10_10 M, int n, int m, ARRAY_100 X, int *nx);
- void prikaziMatricu(ARRAY_10_10 M, int n, int m);
- void zadatak5(void);
- void glavniMeni(void);
- int main(void) {
- glavniMeni();
- return 0;
- }
- int uporedi(int a, int b)
- {
- if (a == b) {
- return 0;
- }
- else if (a > b) {
- return 1;
- }
- else {
- return -1;
- }
- }
- void zadatak1(void)
- {
- int n = 3;
- char unos = 'd';
- int x, y, status;
- while (unos != 'n') {
- printf("Unesite dva broja\n");
- scanf("%d %d", &x, &y);
- status = uporedi(x, y);
- if (status == 1) {
- printf("Broj (%d) je veci od broja (%d)\n", x, y);
- }
- else if (status == 0) {
- printf("Broj (%d) je jednak broju (%d)\n", x, y);
- }
- else {
- printf("Broj (%d) je manji od broja (%d)\n", x, y);
- }
- printf("Da li zelite jos da unosite (d-da / n-ne): ");
- scanf(" %c", &unos);
- }
- }
- void srv(int n, int zadatiBroj, float * srv)
- {
- *srv = 0.0;
- int x, i = 0, suma = 0, brojac = 0;
- while (i < n) {
- scanf("%d", &x);
- if (x % zadatiBroj == 0) {
- suma += x;
- brojac++;
- }
- i++;
- }
- if (brojac > 0) {
- *srv = (float)suma / brojac;
- }
- }
- void zadatak2(void)
- {
- int n, zadatiBroj;
- float srve;
- printf("Unesite n: ");
- scanf("%d", &n);
- printf("Unesite zadatiBroj: ");
- scanf("%d", &zadatiBroj);
- srv(n, zadatiBroj, &srve);
- printf("Ukupan broj unetih brojeva je (%d), a srednja vrednost unetih brojeva deljivih sa (%d) je: (%.2f)", n, zadatiBroj, srve);
- }
- void postoji(int X[], int n, int broj, int * pozicija)
- {
- for (int i = 0; i < n; i++)
- {
- if (X[i] == broj) {
- *pozicija = i;
- }
- }
- }
- void izbaci(int X[], int * n, int position)
- {
- for (int i = position; i < *n; i++)
- {
- X[i] = X[i + 1];
- }
- (*n)--;
- }
- void prikazNiy(int X[], int n)
- {
- for (int i = 0; i < n; i++)
- {
- printf("X[%d] = %d\t", i, X[i]);
- }
- printf("\n");
- }
- int nadjiNajveciParniElementNiza(ARRAY_100 x, int n)
- {
- int max;
- int temp = 0;
- for (int i = 0; i < n; i++)
- {
- if (x[i] % 2 == 0 && temp == 0) {
- max = x[i];
- }
- else if (x[i] % 2 == 0 && temp && max < x[i]) {
- max = x[i];
- }
- }
- return max;
- }
- void sortirajNiz(ARRAY_100 x, int n)
- {
- int i, j;
- for (i = 0; i < n - 1; i++) {
- // Last i elements are already in place
- for (j = 0; j < n - i - 1; j++) {
- if (x[j] > x[j + 1]) {
- x[j] = x[j] ^ x[j + 1];
- x[j + 1] = x[j] ^ x[j + 1];
- x[j] = x[j] ^ x[j + 1];
- }
- }
- }
- }
- void ubaciNoviElementUSortiranomRedosledu(ARRAY_100 x, int * n, int noviEl)
- {
- int pom;
- for (int i = 0; i <= (*n); i++)
- {
- if (x[i] >= noviEl || i==*n) {
- pom = x[i];
- x[i] = noviEl;
- noviEl = pom;
- }
- }
- (*n)++;
- }
- void prikaziNiz(ARRAY_100 x, int n)
- {
- for (int i = 0; i < n; i++)
- {
- printf("X[%d] = %d\t", i, x[i]);
- }
- printf("\n");
- }
- void zadatak4(void)
- {
- ARRAY_100 x = { 1,5,0,5,6 };
- int n = 5, status = 1, y;
- while (status != 0) {
- printf("\nIzaberite koju funkciju zelite da pozovete: \n");
- printf("1. nadjiNajveciParniElement: \n");
- printf("2. sortirajNiz: \n");
- printf("3. ubaciNoviElementUSortiranomRedosledu: \n");
- printf("4. prikaziNiz: \n");
- printf("0. Kraj! ");
- scanf("%d", &status);
- switch (status) {
- case 1:
- printf("Najveci parni element je (%d)\n", nadjiNajveciParniElementNiza(x, n));
- break;
- case 2:
- sortirajNiz(x, n);
- break;
- case 3:
- printf("Unesite broj koji zelite da ubacite u niz: ");
- scanf("%d", &y);
- sortirajNiz(x, n);
- ubaciNoviElementUSortiranomRedosledu(x, &n, y);
- break;
- case 4:
- prikaziNiz(x, n);
- break;
- case 0:
- break;
- default:
- printf("Ne postoji trazena funkcija!\n");
- }
- }
- printf("\n");
- }
- int sumaZadatogRedaMatrice(ARRAY_10_10 M, int n, int m, int red)
- {
- int suma = 0;
- for (int i = 0; i < m; i++)
- {
- suma += M[red][i];
- }
- return suma;
- }
- void najveciElementZadatogRedaMatrice(ARRAY_10_10 M, int n, int m, int red, int * najveci)
- {
- *najveci = M[red][0];
- for (int i = 0; i < m; i++)
- {
- if (*najveci < M[red][i]) {
- *najveci = M[red][i];
- }
- }
- }
- void formirajNizOdParnihElemenatMatriceBezPonavljanja(ARRAY_10_10 M, int n, int m, ARRAY_100 X, int * nx)
- {
- *nx = 0;
- int temp = 1;
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- if (M[i][j] % 2 == 0) {
- for (int k = 0; k < *nx; k++)
- {
- if (M[i][j] == X[k]) {
- temp = 0;
- }
- }
- if (temp) {
- X[(*nx)++] = M[i][j];
- }
- }
- }
- }
- }
- void prikaziMatricu(ARRAY_10_10 M, int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- printf("%d\t", M[i][j]);
- }
- printf("\n");
- }
- }
- void zadatak5(void)
- {
- ARRAY_10_10 M = { 1,2,3,4,5,6,7,8,9 };
- ARRAY_100 X;
- prikaziMatricu(M, 3, 3);
- int red = 1, n = 3, m = 3;
- printf("Suma (%d) reda matrice: %d\n", red, sumaZadatogRedaMatrice(M, n, m, red));
- int najveci, nx;
- najveciElementZadatogRedaMatrice(M, n, m, red, &najveci);
- printf("Najveci element iz (%d) reda matrice: %d\n", red, najveci);
- formirajNizOdParnihElemenatMatriceBezPonavljanja(M, n, m, X, &nx);
- prikaziNiz(X, nx);
- printf("\n");
- }
- void glavniMeni(void)
- {
- int x = 3;
- while (x!=6) {
- printf("GLAVNI MENI:\n");
- printf("1. Pokreni zadatak 1\n");
- printf("2. Pokreni zadatak 2\n");
- printf("3. Pokreni zadatak 3\n");
- printf("4. Pokreni zadatak 4\n");
- printf("5. Pokreni zadatak 5\n");
- printf("6. Kraj rada:\n");
- printf("\nVas unos: ");
- scanf("%d", &x);
- switch (x) {
- case 1:
- zadatak1();
- break;
- case 2:
- zadatak2();
- break;
- case 3:
- zadatak3();
- break;
- case 4:
- zadatak4();
- break;
- case 5:
- zadatak5();
- break;
- case 6:
- printf("Kraj programa\n");
- break;
- default:
- printf("Los unos\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement