← Natrag

Demo zadatak

Upiši broj i ispitaj ako je palindrom.

TODO: riješiti kasnije

Selection sort

for(size_t i = 0; i < n - 1; i++) {
  for(size_t j = i + 2; j < n; j++) {
    if (polje[i] < polje[j]) {
      //zamjena
    }
  }
}

Transponiranje matrice

for(i = 0 i < n - 1 i++) {
  for(j = i + 1; j < n; j++) {
    mat[i][j] <=> mat[j][i]
  }
}

Demo zadatak

Upisati broj i ispisati matricu s uzorkom mete.
Za 5:

11111
1   1
1 1 1
1   1
11111

Za 10:

1111111111
1        1
1 111111 1
1 1    1 1
1 1 11 1 1
1 1 11 1 1
1 1    1 1
1 111111 1
1        1
1111111111

Rješenje:

#include <stdio.h>
#include <stdlib.h>

#define MAX_RED 100

int main() {
	int mat[MAX_RED][MAX_RED] = {0};
	int red = 0;

	printf("Unesi red kvadratne matrice (< 100): ");
	scanf("%d", &red);

	printf("\n");

	for (int j = 0; j <= red/2; j+=2) {
		for (int i = j; i < red-j; i++) {
			// Retci
			mat[j][i] = 1;
			mat[red - j - 1][i] = 1;

			// Stupci
			mat[i][j] = 1;
			mat[i][red - j - 1] = 1;
		}
	}

	// Ispis
	for (int i = 0; i < red; i++) {
		for (int j = 0; j < red; j++) {
			if (mat[i][j] == 1) printf("1");
			else printf(" ");
		}
		printf("\n");
	}

	return EXIT_SUCCESS
}

Demo zadatak

Programski zadatak

Note

Zadatak se nalazi u prezentaciji predavanja “Agregatni tipovi podataka”, ovo je moje rješenje

Rješenje zadatka:

#include <stdio.h>
#include <stdlib.h>

#define NUM_LV 8

typedef struct {
	int maticni_br;

	// Broj bodova na međuispitu
	float rez_mi;

	// Broj bodova na završnom ispitu
	float rez_zi;

	// Broj bodova na svakom od 8 labosa
	float rez_lv[NUM_LV];
	float sum_lv;

	float sum_bodova;
} student_t;


int main() {
	int br_st;
	printf("Unesi broj studenata: ");
	scanf("%d", &br_st);

	if (br_st < 1) {
		printf("Broj studenata mora biti pozitivan!\n");
		return EXIT_FAILURE;
	}

	student_t studenti[br_st];

	// Unos i izračun bodova za sve studente
	printf("Unos podataka: <maticni_broj> <broj_bodova_MI> <broj_bodova_ZI> "
	       "<LV01> <LV02> <LV03> <LV04> <LV05> <LV06> <LV07> <LV08>\n\n");
	for (int i = 0; i < br_st; i++) {
		printf("Unesi podatke za %d studenta: ", i + 1);
		scanf("%d", &studenti[i].maticni_br);
		scanf("%f %f", &studenti[i].rez_mi, &studenti[i].rez_zi);

		studenti[i].sum_bodova = 0;

		for (int j = 0; j < NUM_LV; j++) {
			scanf("%f", &studenti[i].rez_lv[j]);
			studenti[i].sum_lv += studenti[i].rez_lv[j];
		}

		studenti[i].sum_bodova += studenti[i].rez_mi;
		studenti[i].sum_bodova += studenti[i].rez_zi;
		studenti[i].sum_bodova += studenti[i].sum_lv;
	}

	// Sortiranje po broju bodova
	for (int i = 0; i < br_st - 1; i++) {
		for (int j = i + 1; j < br_st; j++) {
			if (studenti[i].sum_bodova < studenti[j].sum_bodova) {
				student_t temp = studenti[i];
				studenti[i] = studenti[j];
				studenti[j] = temp;
			}
		}
	}

	// Ispis rang liste
	printf("Rang lista\n");
	printf("Rbr.  Mat. broj    MI   ZI   LAB  Ukupno\n");
	printf("========================================\n");
	for (int i = 0; i < br_st; i++) {
		printf("%4d. %09d  %4.1f  %4.1f  %4.1f  %6.1f\n",
		    i + 1, studenti[i].maticni_br, studenti[i].rez_mi,
		    studenti[i].rez_zi, studenti[i].sum_lv, studenti[i].sum_bodova);
	}

	return EXIT_SUCCESS;
}