|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
13.10.2020, 16:20 | #1 |
Novi član
Član od: 12.10.2020.
Poruke: 5
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
|
Matrica zadatak (C jezik)
Pozdrav svima. Trebala bi mi pomoc u vezi jednog zadatka iz matrica, gdje mi je potrebno da rotiram sve kolone matrice u desnu stranu za vrijednost minimalnog elementa matrice. U pitanju je kvadratna matrica. Dakle ja znam naravno pronaci minimalni elemenat, pokusavao sam sve i svasta ali nikako ne mogu da uspijem da rotiram sve kolone. U pitanju je C jezik, zadatak moram da rijesim bez koriscenja funkcija i pokazivaca jer to jos uvijek nismo radili. Dakle smijem samo koristiti osnovne funkcije i petlje.
|
13.10.2020, 16:22 | #2 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Matrica zadatak (C jezik)
Šta već imaš urađeno od koda? Šta si pokušao? Gde je problem pošao naopako?
|
13.10.2020, 17:18 | #3 |
Novi član
Član od: 12.10.2020.
Poruke: 5
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
|
Re: Matrica zadatak (C jezik)
Pokusavao sam nesto na 2 nacina.
Prvi nacin je bio da cijelu matricu smjestim u jedan obican niz i onda da sve elemente tog niza pomjerim u desnu stranu za vrijednost minimalnog elementa. Nakon toga sam vratio taj niz u matrcu. Iako sam mislio da ce rezultat toga biti skroz deseta stvar, na kraju sam dobio matricu kojoj jesu kolone rotirane za taj broj mjesta, ali takodje i vrste su joj rotirane pa nista nisam postigao time. Ovo sam probao iz razloga zato sto kad je u pitanju samo jedna kolona ili vrsta, ovaj nacin savrseno radi. Drugi nacin je ovaj: Kod:
#include <stdio.h> int main () { int i, j, n, mat[10][10], min, pom, k, u; printf("Unesi dimenziju matrice:\n"); scanf("%d", &n); printf("Unesi elemente:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d", &mat[i][j]); } } printf("Matrica je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat[i][j]); } printf("\n\n"); } min=mat[0][0]; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(mat[i][j]<min) min=mat[i][j]; } } for(i=0; i<n; i++) { for(j=0; j<n; j++) { for(u=0; u<min; u++) //* for koji se vrti min puta *// { pom=mat[i][n-1]; //* Ove 4 naredne linije mi nikako ne rade ali ne kapiram zasto *// for(k=n-2; k>=0; k--) //* Ovakva vrsta pomjeranja mi savrseno radi kod nizova. *// mat[i][k+1]=mat[i][k]; mat[i][0]=pom; } } } printf("Nova je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat[i][j]); } printf("\n\n"); } } Poslednja ispravka: Andross (13.10.2020 u 18:06) |
13.10.2020, 17:22 | #4 |
Novi član
Član od: 12.10.2020.
Poruke: 5
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
|
Re: Matrica zadatak (C jezik)
Takodje radeci ovaj drugi nacin u jednom trenutku sam uspio da pomjeram sve vrste na gore ili na dole, tj. da im mijenjam mjesta za vrijednost minimalnog elementa. Ali nikako da uspijem da pomjerim kolone u desno ili lijevo.
EDIT: Poslao sam prethodni odgovor gdje sam objasnio 2 nacina na koja sam pokusavao, zajedno sa kodom ali iz nekog razloga moram sacekati da moderator odobri. Dok ne odobre evo ovde taj drugi nacin koji sam spominjao: Dakle pokusavao sam uvodjenjem ovog fora koji se vrti min puta i daljim uporedjivanjem sa forom sa "k" brojacem pomjerati svaki element posebno ali ovo nazalost ne radi nista. Kod:
#include <stdio.h> int main () { int i, j, n, mat[10][10], min, pom, k, u; printf("Unesi dimenziju matrice:\n"); scanf("%d", &n); printf("Unesi elemente:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d", &mat[i][j]); } } printf("Matrica je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat[i][j]); } printf("\n\n"); } min=mat[0][0]; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(mat[i][j]<min) min=mat[i][j]; } } for(i=0; i<n; i++) { for(j=0; j<n; j++) { for(u=0; u<min; u++) //* for koji se vrti min puta *// { pom=mat[i][n-1]; //* Ove 4 naredne linije mi nikako ne rade ali ne kapiram zasto *// for(k=n-2; k>=0; k--) //* Ovakva vrsta pomjeranja mi savrseno radi kod nizova. *// mat[i][k+1]=mat[i][k]; mat[i][0]=pom; } } } printf("Nova je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat[i][j]); } printf("\n\n"); } } Poslednja ispravka: Andross (13.10.2020 u 18:05) |
14.10.2020, 0:53 | #5 |
Član
Član od: 28.8.2012.
Poruke: 106
Zahvalnice: 27
Zahvaljeno 9 puta na 9 poruka
|
Re: Matrica zadatak (C jezik)
Kod:
#include <stdio.h> int main () { int i, j, n, mat[10][10],mat2[10][10], min, pom, k, u; printf("Unesi dimenziju matrice:\n"); scanf("%d", &n); printf("Unesi elemente:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d", &mat[i][j]); } } printf("Matrica je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat[i][j]); } printf("\n\n"); } min=mat[0][0]; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(mat[i][j]<min) min=mat[i][j]; } } printf("%d\n\n",min); for(i=0; i<n; i++) { for(j=0; j<n; j++) { mat2[i][(j+min)%n]=mat[i][j]; } } printf("Nova je:\n"); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d\t", mat2[i][j]); } printf("\n\n"); } } |
Sledeći korisnik se zahvaljuje korisniku Wolf72 na korisnoj poruci: | ||
Mladjo73 (14.10.2020) |
14.10.2020, 14:28 | #6 | |
Novi član
Član od: 12.10.2020.
Poruke: 5
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
|
Re: Matrica zadatak (C jezik)
Citat:
I da, jos jedno pitanje ako nije problem (nadam se da nisam naporan), sta bi bilo ako bih pokusavao da pomjerim kolone ali u lijevo za istu ovu vrijednost? Poslednja ispravka: Mladjo73 (14.10.2020 u 14:46) |
|
14.10.2020, 16:29 | #7 | |
Član
Član od: 28.8.2012.
Poruke: 106
Zahvalnice: 27
Zahvaljeno 9 puta na 9 poruka
|
Re: Matrica zadatak (C jezik)
Citat:
Problematika je samo kad dodajes taj min na index niza. Recimo ako ti je min = 1 a ti si u for petlji na 3. clanu (i=2, n=3) , dodajes taj pomeraj na i dobijes i=3 a niz ti ide od 0 do 2. Taj i=3 treba ustvari da ti se vrati na pocetak niza tako da kad uradis %n dobijes prvi clan. (3%3=0). |
|
15.10.2020, 15:48 | #8 | |
Novi član
Član od: 12.10.2020.
Poruke: 5
Zahvalnice: 1
Zahvaljeno 0 puta na 0 poruka
|
Re: Matrica zadatak (C jezik)
Citat:
|
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Prevodi i titlovi | Teva | Kompjuteri i film | 1567 | 6.3.2024 16:24 |
[Android] kako ubaciti srpski jezik u htc wildfire | zexxxx | Programi za mobilne telefone | 1 | 20.9.2014 19:30 |
Word 2003 jezik | Insecticide | Aplikativni softver | 1 | 19.8.2010 21:30 |
c++ zadatak | sunce86 | Programiranje | 19 | 7.6.2010 22:37 |