C program koji briše glavnu dijagonalu matrice

C program koji briše glavnu dijagonalu matrice

offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Pozdrav, mozete li mi pomoci oko ovoga?
Ako unesem matricu:
1 0 0
0 1 0
0 0 1

Trebalo bi nakon brisanja glavne dijagonale da izbaci vjerovatno ovako:
0 0
0 0
0 0

Kako to da postignem koristeći ovu matricu?
#include <stdio.h> int main() {   int i, j, mat[50][50], n;   printf("Enter dimension of matrix: \n");   scanf("%d", &n);   for (i = 0; i < n; i++) {     printf("Enter elements of %d. row: \n", i + 1);     for (j = 0; j < n; j++) {       scanf("%d", &mat[i][j]);     }   }   printf("Matrix after deleting main diagonal:\n");     for (i = 0; i < n; i++) {       for (j = 0; j < n; j++) {         if (i == j)           mat[i][j] == mat[i][j+1];       }     }     for (i = 0; i < n; i++) {       for (j = 0; j < n - 1; j++) {           printf("%5d", mat[i][j]);       }       printf("\n");     }   return 0; }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

Tvoje rešenje nije dobro jer ti vršiš obradu samo elemenata na glavnoj dijagonali, a umesto toga treba da obradiš sve elemente na glavnoj dijagonali, kao i sve elemente iznad glavne dijagonale.

Na prvi pogled deluje da tvoje rešenje može da postane tačno samo jednostavnom promenom uslova u petlji za obradu.



offline
  • Pridružio: 11 Okt 2014
  • Poruke: 362

Hvala puno, evo rješenja
#include <stdio.h>   int main() {   int i, j, mat[50][50], n;   printf("Enter dimension of matrix: \n");   scanf("%d", &n);   for (i = 0; i < n; i++) {     printf("Enter elements of %d. row: \n", i + 1);     for (j = 0; j < n; j++) {       scanf("%d", &mat[i][j]);     }   }     printf("Matrix after deleting main diagonal:\n");    for (i = 0; i < n; i++) {       for (j = 0; j < n; j++) {         if (i == j||i<j)           mat[i][j] = mat[i][j+1];           else mat[i][j]=mat[i][j];       }     }       for (i = 0; i < n; i++) {       for (j = 0; j < n - 1; j++) {           printf("%5d", mat[i][j]);       }       printf("\n");     }     return 0; }

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14828
  • Gde živiš: Niš

E, super. Može to i malo jednostavnije - postoji operator <= koji radi to isto kao u tvom uslovu.

Ko je trenutno na forumu
 

Ukupno su 745 korisnika na forumu :: 72 registrovanih, 4 sakrivenih i 669 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Adaminho1985, Ahilius, aleph_one, Asparagus, awathorn, Bojan85, bojan_t, BZ, C-Gun, ceman, cemix, Chainsaw, Cicumile, cifra, CikaKURE, coaaco, Coficab, crnirocko, DeerHunter, DonRumataEstorski, dushan, gregorxix, grunff2, hyla, ILGromovnik, IpMan, istina, ivan1973, Jakonjveliki, Jeremiah, Kajzer Soze, kondenzator, kreker, kybonacci, laki_bb, leopard83, LUDI, Magistar78, Maki1981, Malahit, mercedesamg, MGBRBG, mgolub, MiroslavD, Mis uz pusku, muaddib, Naj-Turs, nebojsag, Pale2025, Papadubi, Pekman, Pero Petković, pisac12, PlayerOne, Prašinar, Prečanin30, Prometeus, rovac, sap, shlauf, Slingshot, Smor, Topaz9, Tristan_Bantam, Ujka, vaso1, vobo, vukovi, wizzardone, XBMC, zlaya011, zoran77