Ne postoji, bar ne u standardnoj biblioteci. Implementiraj vlastiti parser za to, sudeći po opisu onoga što ti treba to je čas posla.
Programiranje u C++-u - pitanja i odgovori
- poruka: 7.285
- |
- čitano: 1.713.090
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
fgets čita samo iz datoteke, ja bi čitao iz polja charova. Odnosno čitam neke fileove s servera i onda ih čitam iz polja, ne želim stvarati nikakve tmp datoteke.
napiši stdin kao treći argument funkcije pa će onda funkcija čitati s ekrana
fgets(tmp, MAX, stdin);
Pozdrav!
Trebao bih napisati dio koda koji će ispisati broj ponavljanja svakog slova iz polja riječi... npr: string lista[] = {"riječ", "mast", "lopta"...itd. }
i sad da mi ispiše broj ponavljanja svakog slova?
Pozdrav!
Trebao bih napisati dio koda koji će ispisati broj ponavljanja svakog slova iz polja riječi... npr: string lista[] = {"riječ", "mast", "lopta"...itd. }
i sad da mi ispiše broj ponavljanja svakog slova?
Napravi lookup tabelu. 256 elemenata za 256 različitih ASCII znakova. Potom koristi ASCII vrijednost znaka kao ključ kojim pristupaš vrijednostima u tabeli.
Dakle imaš polje koje je sačinjeno od brojeva ponavljanja pojedinih znakova u tekstu. Svaki element u tom polju drži broj ponavljanja nekog znaka. Kao indeks elementa koristi samu ASCII vrijednost znaka koji trenutno procesiraš (npr. malo slovo 'a' ima vrijednost 97, znači da bi to bio element u polju sa indeksom 97).
char recenica[] = "ovo je nekakav tekst";
int tabela[256] = {0};
char trenutniZnak;
for (int n = 0; recenica[n]; n++)
{
trenutniZnak = recenica[n];
tabela[trenutniZnak]++;
}
cout << "slovo 'a' pojavljuje se " << tabela[97] << " puta\n";
Pozdrav, trebao bi rjesenja nekoliko zadataka iz programiranja uz objasnjenja.
1.Napišite program u kojem se obavlja interakcija s korisnikom sve dok korisnik ne pogodi vaš omiljeni broj. Ako korisnik ne pogodi, ispisuje se "Moj omiljeni broj je veći" ili "Moj omiljeni broj je manji".
- Modificirajte prethodni kod tako da korisnik svaki krug mora odgovoriti želi li nastaviti pogađanje ili ne (d/n).
2. Napišite program u koji se unose znakovi sve dok korisnik ne unese oznaku za kraj, tj. znak #. Svaki znak do oznake za kraj se ispisuje još jednom na ekran, a potom i broj učitanih znakova.
3.Napišite program u kojem se svakih 5 sekundi ispisuje na ekran poruka "Your system has been infected! "
Evo za sad ova tri, pa ko zna, unaprijed hvala!
U prvom sam pretpostavio da treba postojati nekakav raspon vrijednosti te sam sa ga proizvoljno odredio.
Drugi se može rješiti bez liste i iteratora, ali mi se nije dalo razmišljati.
Treći zadatak radi, ali je to loše rješenje - to će netko tko se više kuži u timere znati bolje rješiti.
Ovo moje je definitivno preneefikasno, ždere CPU - nisam baš na "ti" s timerima, priznajem.
Pozdrav, trebao bi rjesenja nekoliko zadataka iz programiranja uz objasnjenja.
1.Napišite program u kojem se obavlja interakcija s korisnikom sve dok korisnik ne pogodi vaš omiljeni broj. Ako korisnik ne pogodi, ispisuje se "Moj omiljeni broj je veći" ili "Moj omiljeni broj je manji".
- Modificirajte prethodni kod tako da korisnik svaki krug mora odgovoriti želi li nastaviti pogađanje ili ne (d/n).
2. Napišite program u koji se unose znakovi sve dok korisnik ne unese oznaku za kraj, tj. znak #. Svaki znak do oznake za kraj se ispisuje još jednom na ekran, a potom i broj učitanih znakova.
3.Napišite program u kojem se svakih 5 sekundi ispisuje na ekran poruka "Your system has been infected! "
Evo za sad ova tri, pa ko zna, unaprijed hvala!
evo rjesenje za 3. uz sitni dodatak koda da nije uvijek sve ista suhoparija.
kompajliraj sa -std=gnu++11 <-> c++11 argum..
ovisno koji ti je kompajler na masini , mozda neces trebati zadati gore navedeno.
#include <iostream>
#include <ctime>
#include <thread>
#include <cstdlib>
using namespace std;
typedef unsigned int uint32;
bool END_PROGRAM;
void warning()
{
clock_t clc_begin;
clc_begin = clock();
clock_t clc_current;
clock_t clc_diff;
while ( END_PROGRAM == false )
{
static uint32 current_sec = 0;
clc_current = clock();
clc_diff = clc_current - clc_begin;
if ((clc_diff / (CLOCKS_PER_SEC * 5)) > current_sec)
{
cout << "\nYour system has been infected!\n";
current_sec++;
}
}
}
void igra()
{
srand (time(NULL));
int magic_num = rand()%5 +1;
int possible;
for ( uint32 attempt = 0 ; attempt<5 ; attempt++)
{
cout<< "pogodi broj (1-5) : ";
cin>> possible;
if ( possible == magic_num )
{
cout<< "bravo iz " << attempt +1 << ". pokusaja\n";
break;
}
}
END_PROGRAM = true;
}
int main()
{
/**
* entry
**/
END_PROGRAM = false;
thread slave0 ( warning );
thread slave1 ( igra );
slave0.join();
slave1.join();
/**
* game over
**/
cout<< "...pozdrav...";
return 0;
}

treci, ako su windowsi u pitanju, rijesiti includanjem windows.h i funkcijom Sleep();
trebao bi ne zauzimati niš proca dok spi
U prvom sam pretpostavio da treba postojati nekakav raspon vrijednosti te sam sa ga proizvoljno odredio.
Drugi se može rješiti bez liste i iteratora, ali mi se nije dalo razmišljati.
Treći zadatak radi, ali je to loše rješenje - to će netko tko se više kuži u timere znati bolje rješiti.
Ovo moje je definitivno preneefikasno, ždere CPU - nisam baš na "ti" s timerima, priiznajem.
ma daj prtScreen taskManagera ili snimi process hackerom pa postaj ovdje sliku , ne znam kaj ti toliko zdere cpu. moja verzija rjesenja ima slicnosti ovoj i pisana je na smartphone-u note 2. ( evo bas gledam proces se vrti sa 0% cpu-a ) trebalo bi jedno ovakvih dosta potrpat paralelno pa da proc uopce ista osjeti.
bas me zanima ako ims kakvu sliku stanja.

ma daj prtScreen taskManagera ili snimi process hackerom pa postaj ovdje sliku , ne znam kaj ti toliko zdere cpu. moja verzija rjesenja ima slicnosti ovoj i pisana je na smartphone-u note 2. ( evo bas gledam proces se vrti sa 0% cpu-a ) trebalo bi jedno ovakvih dosta potrpat paralelno pa da proc uopce ista osjeti.
bas me zanima ako ims kakvu sliku stanja.
Dobro, nije sad da mi sve zašteka - imam solidnu konfu, ali digne proc na nekih 30% što je previše za ovakvu glupost.
Uvijek je tako sa beskonačnim petljama, barem su to moja iskustva.
ma daj prtScreen taskManagera ili snimi process hackerom pa postaj ovdje sliku , ne znam kaj ti toliko zdere cpu. moja verzija rjesenja ima slicnosti ovoj i pisana je na smartphone-u note 2. ( evo bas gledam proces se vrti sa 0% cpu-a ) trebalo bi jedno ovakvih dosta potrpat paralelno pa da proc uopce ista osjeti.
bas me zanima ako ims kakvu sliku stanja.
Dobro, nije sad da mi sve zašteka - imam solidnu konfu, ali digne proc na nekih 30% što je previše za ovakvu glupost.
Uvijek je tako sa beskonačnim petljama, barem su to moja iskustva.
hvala.
imas 92 procesa aktivna , ne moras ponovo prtScreen , samo vidi koliko ti jede proces rjesenje bez ostalih par desetaka pa postaj.
hvala jos jedom.

ma daj prtScreen taskManagera ili snimi process hackerom pa postaj ovdje sliku , ne znam kaj ti toliko zdere cpu. moja verzija rjesenja ima slicnosti ovoj i pisana je na smartphone-u note 2. ( evo bas gledam proces se vrti sa 0% cpu-a ) trebalo bi jedno ovakvih dosta potrpat paralelno pa da proc uopce ista osjeti.
bas me zanima ako ims kakvu sliku stanja.
Dobro, nije sad da mi sve zašteka - imam solidnu konfu, ali digne proc na nekih 30% što je previše za ovakvu glupost.
Uvijek je tako sa beskonačnim petljama, barem su to moja iskustva.
hvala.
imas 92 procesa aktivna , ne moras ponovo prtScreen , samo vidi koliko ti jede proces rjesenje bez ostalih par desetaka pa postaj.
hvala jos jedom.
Evo nadopuna u slucaju da se štopa egzekucija glede veće optimiziranosti AKA manje se muči cpu no i prva verzija je u redu i neka ostane čisto da se vidi kako ručno odraditi nki dio jer ovaj što slijedi prepavljen iza thread-a ima kulisu događaja što se ne vide:
#include <iostream>
#include <ctime>
#include <thread>
#include <cstdlib>
#include <chrono>
using namespace std;
typedef unsigned int uint32;
bool END_PROGRAM;
void warning()
{
while ( END_PROGRAM == false)
{
this_thread::sleep_for (std::chrono::seconds(5));
cout << "\nYour system has been infected!\n";
}
}
void igra()
{
srand (time(NULL));
int magic_num = rand()%5 +1;
int possible;
for ( uint32 attempt = 0 ; attempt<5 ; attempt++)
{
cout<< "pogodi broj (1-5) : ";
cin>> possible;
if ( possible == magic_num )
{
cout<< "bravo iz " << attempt +1 << ". pokusaja\n";
break;
}
}
END_PROGRAM = true;
}
int main()
{
/**
* entry
**/
END_PROGRAM = false;
thread slave0 ( warning );
thread slave1 ( igra );
slave0.join();
slave1.join();
/**
* game over
**/
cout<< "...pozdrav...";
return 0;
}
Evo kako to izgleda kada pokrenem svoje rješenje, proces zauzme čitavu jednu jezgru CPU-a što je i za očekivati imho.
Da imam single-core proc bio bi na 100% zauzeća.
Treći zadatak radi, ali je to loše rješenje - to će netko tko se više kuži u timere znati bolje rješiti.
Ovo moje je definitivno preneefikasno, ždere CPU - nisam baš na "ti" s timerima, priznajem.
while(1)
{
end = clock();
int n = (end - start) / CLOCKS_PER_SEC;
if (n == PERIOD)
{
cout << "Your system has been infected!\n";
start = clock();
}
}
Problem je ova petlja koja je u biti neki oblik busy waitinga. Naime ono što se događa jest da se tijelo petlje ponavlja beskonačno bez ikakve pauze između iteracija (znači što je brže moguće), takvo nešto će bez problema zakucati jednu jezgru na 100%.
Koliko znam u standardnoj biblioteci ne postoji rješenje za taj problem, pa se onda pribjegava rješenjima koji su specifični za neku platformu, npr. Sleep() je pravo rješenje za to pod windowsima. Čak i "spavanje" od malih 15 milisekundi unutar svake iteracije petlje već čini čuda za procesor.
Edit: Uradio sam
fgets čita samo iz datoteke, ja bi čitao iz polja charova. Odnosno čitam neke fileove s servera i onda ih čitam iz polja, ne želim stvarati nikakve tmp datoteke.
napiši stdin kao treći argument funkcije pa će onda funkcija čitati s ekrana
fgets(tmp, MAX, stdin);
molim te pročitaj još jednom što ja tražim. Ne čitanje s stdina, nego polja.
Anyway riješio sam sam problem.
kako ispisati datum i vrijeme pomoću strftime(), ako imam na raspolaganju samo time(NULL)?
bitan mi je strftime zbog formata, a time(NULL) je spremljen nekada ranije i ja ga samo čitam kao int.
Koliko znam u standardnoj biblioteci ne postoji rješenje za taj problem, pa se onda pribjegava rješenjima koji su specifični za neku platformu, npr. Sleep() je pravo rješenje za to pod windowsima. Čak i "spavanje" od malih 15 milisekundi unutar svake iteracije petlje već čini čuda za procesor.
Samo da se osvrnem na zeleno.
U c++11 postoji <thread> koji je platform intependant tako da sad jedan code je univerzalan i za linux i windows (naravno ako se koristi kompajler sa implementacijom navedenog -> gcc 481 ima implementaiju za razliku od gcc 471 koji je bandlan na predzadnjoj inačici code-blocks-a).
Znači isti kod bez os specifkuma tipa Sleep(/*x*/).
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
typedef unsigned int uint32;
#define sleep_for(milisec) this_thread::sleep_for(std::chrono::milliseconds(milisec))
int main()
{
while(1)
{
/**
* counter ide na screen svakih 100 milisekundi -> sleep_for(100)<-
**/
static uint32 counter = 0;
cout<< "counter" << counter << endl;
/**
* neki code koji se izvršava s pauzom
* od sleep_for( x ) milisekundi
* ...
**/
sleep_for(100);
}
return 0;
}
U prvom sam pretpostavio da treba postojati nekakav raspon vrijednosti te sam sa ga proizvoljno odredio.
Drugi se može rješiti bez liste i iteratora, ali mi se nije dalo razmišljati.
Treći zadatak radi, ali je to loše rješenje - to će netko tko se više kuži u timere znati bolje rješiti.
Ovo moje je definitivno preneefikasno, ždere CPU - nisam baš na "ti" s timerima, priznajem.
Uh, ajmo polako, prvo prvi zadatak, hvala svima na rijesenjima.
Samo dosta toga ne kuzim, na prvoj godini informatike sam i neznam bas programiranje.
Bio bi zahvalan ako bi mogao pojasnit linije koje sam oznacio (sa ?) jer neznam cemu sluze?
Ako je netko za, platio bi za instrukcije, samo da zna dobro objasnit i ima vremena za to.
Hvala!
Ako je netko za, platio bi za instrukcije, samo da zna dobro objasnit i ima vremena za to.
Hvala!
string response; // ?
String u koji će se pohraniti odgovor od korisnika ('y' za yes, 'n' za no)
srand((unsigned)(time(NULL)));
Funkcija srand() postavlja novi random seed, koristeći vrijednost koju vraća funkcija time() kao seed. Ovo (unsigned) ispred poziva funkcije time() je casting (pretvaranje vrijednosti) iz tipa podatka koji funkcija time vraća, u unsigned int.
random = rand() % 100;
Stvara novi nasumični (random) broj od 0-99. Naime funkcija rand() vraća nasumične brojeve u rasponu od 0 do RAND_MAX (koji je najmanje 32767), pa pomoću modulo operatora (ovaj '%') taj broj svedeš u željeni raspon. Modulo operator naime vraća ostatak pri cjelobrojnom dijeljenju.
Npr:
7 % 2 = 1 jer je 7 / 2 = 3 i ostatak 1
14 % 3 = 2 jer je 14 / 3 = 4 i ostatak 2
Dakle ostatak od dijeljenja sa 100 mora biti od 0 do 99, ne može biti veći jer kad 100 podijeliš sa 100 ostatak ti je 0.
else
{
cout << "Pogodili ste moj omiljeni broj!\n";
break; // nesto prekida? sta to?
}
break je komanda kojom se izlazi iz nekog for, while. ili switch bloka. U ovom slučaju iz while petlje.
cout << "Zelite li jos pogadati (y/n): ";
cin >> response; // ovaj response?
Kao što možeš vidjeti na ekran se ispiše poruka želite li još pogađati, nakon čega korisnik treba upisati odgovor. Očigledno varijabla 'response' pohranjuje taj odgovor.
if (!response.compare("n")) // takoder ?
break;
Uspoređuje se string response sa stringom "n", ako su stringovi jednaki metoda compare() će vratiti nulu.
Nula u C/C++-u ima značenje 'false' (bilo koji drugi broj ima značenje 'true').
Uvjetno grananje ('if' blok) će se izvršiti ako je izraz unutar zagrada istinit (true). Ako je metoda compare() vratila nulu tada je izraz neistinit, ali je zato na taj izraz primijenjen logički operator 'not' koji u biti true pretvara u false i obratno.
Možeš to zamisliti ovako: ako imaš u zagradi (!0) to si onda možeš čitati kao: "not false" a ako nije "false" onda mora biti "true". Isto tako ako imaš (!1) to je onda kao da piše "not true" a ako nije "true" onda mora biti "false".
Što znači da ako je metoda compare() vratila nulu kao rezultat stanje u zagradi je (!0), što se evaluira u "true" kao što možeš vidjeti iz gornjeg odlomka.
U biti to ti ima isti rezultat kao da je napisano: if (response.compare("n") == 0)
Zato što ako metoda compare() vrati nulu kao rezultat, tada je 0 == 0 istinito (true).
Ako ti je lakše tako shvatiti.
while(true); // ovaj true u do while petlji ?
Petlja se ponavlja tako dugo dok je izraz unutar zagrada istinit. True će uvijek biti true, pa će se petlja beskonačno izvršavati dok ju na neki drugi način ne prekineš (npr pomoću 'break'). Često ćeš vidjeti i negdje kako piše while(1), to je ti je isto beskonačna petlja kao i ova (pogledaj ovo gore što sam napisao o značenju brojeva i 'true' i 'false').
Mozete li mi reci kako bi izracunali determinantu matrice 5x5 u c++-u, ja sam napisoa kod za unos elemenata, ali kako izracunati to ne znam
Mozete li mi reci kako bi izracunali determinantu matrice 5x5 u c++-u, ja sam napisoa kod za unos elemenata, ali kako izracunati to ne znam
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
Matrix5f A;
A << 1, 2, 1, 2, 3,
2, 1, 0, 4, 7,
-1, 1, 2, 2, -2,
4, 2, 3, 1, 1,
5, 8, -5, 1, 0;
std::cout << "Matrica A:\n" << A << std::endl;
std::cout << "Determinanta " << A.determinant() << std::endl;
return 0;
}http://eigen.tuxfamily.org/index.php?title=Main_Page
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
Matrix5f A;
A << 1, 2, 1, 2, 3,
2, 1, 0, 4, 7,
-1, 1, 2, 2, -2,
4, 2, 3, 1, 1,
5, 8, -5, 1, 0;
std::cout << "Matrica A:\n" << A << std::endl;
std::cout << "Determinanta " << A.determinant() << std::endl;
return 0;
}http://eigen.tuxfamily.org/index.php?title=Main_Page
Hvala ti za ovo, ali ako nije problem da mi napisete nesto sto je prihvatljivije za pocetnika nesto sa for petljama ako ima
Mene zanima jedna stvarčica koja me muči već neko vrijeme... naime, imam zadatak da u C++ napišem program koji učitava 7 brojeva i ispisuje drugi najmanji, odnosno treći najmanji... patim se s tim već neko vrijeme, ali nikako da ga uradim da mi 100% radi. I mene sada zanima jel postoji mogućnost da se taj program ovako napiše kako sam ga ja zamislio..
Prvo nađemo najmanji broj, što je zapravo lako, i da se onda opet traži najmanji broj od tih preostalih, NE RAČUNAJUĆI TAJ VEĆ NAĐENI NAJMANJI, a onda kada budem tražio treći najmanji da se opet to ponovi, naravno ne računajući prva dva najmanja... problem je što sam tek zagazio malo u C++ i ne znam kako ideju još da prebacim u kod, pa ako mi neko može odgovoriti na ovo ili mi poslati neke linkove vezane za ovaj zadatak mnogo bi mi značilo...
Pozdrav
1. kreiraj polje od 7 elemenata
2. unesi sve brojeve u polje
3. sortiraj brojeve (npr. bubble sort)
4. ispiši n-ti najmanji (n je indeks elementa polja gdje se nalazi n-ti najmanji)
nije mi u knjizi obrađivano to sortiranje što si naveo :P
Evo dokle sam te uspio pratiti..
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<double> brojevi(7);
cout << "Unesite brojeve: " << endl;
for (double i=0;i<=6;i++)
cin >> brojevi[i];
}
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main(){
vector<double> brojevi(7);
int n;
cout << "Unesite brojeve: " << endl;
for (double i = 0; i < 7; i++)
cin >> brojevi[i];
sort(brojevi.begin(), brojevi.end());
cout << "Unesite n: ";
cin >> n;
cout << n << ". najmanji broj je " << brojevi[n - 1];
return 0;
}
Determinantu matrice 5x5 sam izracunao na tezi nacin, tj. La Place-ovom transformacijom. Ali sad mi je problem kako naci inverznu matricu od ove.
Znam da je formula A-1=1/detA * adjug. A
Ali problem je sto je u mene matrica 5x5, pa kad bih isao istim putem kao i sto sam determinantu racunao za svaki kofaktor racunao matricu 4x4, imao bih 25 takvih kofaktora odnosno 25 * 4x4 matrice, a to nije malo za napisati i sigurno bi se nasla neka greska u kodu koju bi bilo teze naci nego napisati sve ispocetka.
Sve sto nadjem na netu je radjeno rekurzivnom funkcijom, a ja to nisam radio tako da to nikako ne razumijem i ne mogu tako uraditi zadatak.
Mene zanima da li se moze na neki jednostavniji nacin uraditi sa nekim for petljama bez neceg sto znaju iskusniji programeri, ja sam ipak pocetnik i ne razumijem jos sve.
Bio bih vam zahvalan na pomoci, ako bi neko objasnio kako napisati taj dio koda za izracun adjugovane matrice ili da napise taj dio koda, jer ostatak znam uraditi.
Determinantu matrice 5x5 sam izracunao na tezi nacin, tj. La Place-ovom transformacijom. Ali sad mi je problem kako naci inverznu matricu od ove.
Znam da je formula A-1=1/detA * adjug. A
Ali problem je sto je u mene matrica 5x5, pa kad bih isao istim putem kao i sto sam determinantu racunao za svaki kofaktor racunao matricu 4x4, imao bih 25 takvih kofaktora odnosno 25 * 4x4 matrice, a to nije malo za napisati i sigurno bi se nasla neka greska u kodu koju bi bilo teze naci nego napisati sve ispocetka.
Sve sto nadjem na netu je radjeno rekurzivnom funkcijom, a ja to nisam radio tako da to nikako ne razumijem i ne mogu tako uraditi zadatak.
Mene zanima da li se moze na neki jednostavniji nacin uraditi sa nekim for petljama bez neceg sto znaju iskusniji programeri, ja sam ipak pocetnik i ne razumijem jos sve.
Bio bih vam zahvalan na pomoci, ako bi neko objasnio kako napisati taj dio koda za izracun adjugovane matrice ili da napise taj dio koda, jer ostatak znam uraditi.
Mislim da ti je najlakše napravit trokutastu matricu i onda pomnožit elemente na glavnoj dijagonali.
P.S. pogledaj svojstvo 6
To je to! Hvala puno meštre.. Al čudi me kako su nam mogli zadat zadatak koji se radi sa sortiranjem, koje još nismo radili.. Vjerovatno se on može uraditi na još 100 načina, ali ovo izgleda sasvim jednostavno i uredno. Hvala još jednom!
Mozete li mi reci u cemu je problem izbacuje mi error za ovu liniju koda int matrica[M][N]
#include<iostream>
using namespace std;
int main ()
{
int M, N, i, j, sr=0, sk=0;
cout<<" Unesi broj redova matrice: ";
cin>>M;
cout<<" Unesi broj kolona matrice: ";
cin>>N;
cout<<endl;
if(N>0 && M>0)
{
int matrica[M][N];
for(int i=0; i<M;i++)
{
for(int j=0; j<N;j++)
{
cin>>matrica[i][j];
}
cout<<endl;
}
for(int i=0; i<M;i++)
{
sr=0;
for(int j=0; j<N;j++)
{
sr=sr+matrica[i][j];
cout<<matrica[i][j]<<" \t ";
}
cout<<"; Suma elemenata "<<i+1<<" reda je: "<<sr<<endl;
cout<<endl;
}
cout<<"--------------------------------------------------------------------------------"<<endl;
for(int j=0; j<N;j++)
{
sk=0;
for(int i=0; i<M;i++)
{
sk=sk+matrica[i][j];
}
cout<<sk<<" \t ";
}
cout<<endl;
}
else{
cout<<"Morate unijeti brojeve koji su veci od nule. "<<endl;
}
system("pause");
return 0;
}