Da ne bi mozda trebalo ici:
for (i=0; i<BrojRed; i++)
for (j=0; j<BrojKol; j++)
??
Cim ti je u poruci rekao "Vector subscript out of range" to ti je trebao biti trag da izlazis van iz polja.
Da ne bi mozda trebalo ici:
for (i=0; i<BrojRed; i++)
for (j=0; j<BrojKol; j++)
??
Cim ti je u poruci rekao "Vector subscript out of range" to ti je trebao biti trag da izlazis van iz polja.
Da, koliko ja znam indeksi polja počinju od 0, možda je kod tebe drugačije ;). Probaj tako pa javi.
Pokušao sam ovako:
for (i=0;i<=BrojRed;i++)
{
for (j=0;i<=BrojKol;j++)
{
cout<<ImeMatrice<<"["<<i+1<<","<<j+1<<"]= ";
cin>>M[i][j];
}
}
ali onda dođe do [1,5] wtf?, i tu izbaci vector out of range. Logično. Zašto ide na [1,5] kad petlja ide do 4?
Zato što si stavio <=.
Zato što si stavio <=.
Prelazak sa pascala.
EDIT:RIJEŠIO
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
float br[2];
cout << "Unesite dva broja" << endl;
cin >> br[1];
cin >> br[2];
if(br[1] > 0 && br[2] > 0)
cout << "Brojevi su pozitivni!" << endl;
if(br[1] < 0 && br[2] < 0)
cout << "Brojevi su negativni!" << endl;
else
cout << "Razlicitog su predznaka!" <<endl;
system("pause");
return 0;
}
Kad pokrenem program koj sam napravio i upisem 2 pozitivna broja izbaci mi:
Brojevi su pozitivni!
Razlicitog su predznaka!
a kad ukucam 2 negativna pise samo:
Brojevi su negativni!
Zasto??
Zasto??
U ovom slučaju u drugoj provjeru trebaš umjesti if koristiti else if. Tvoj program sada prvo provjerava jesu li oba broja pozitivna, ako jesu onda ispiše poruku da su pozitivni. Onda provjerava jesu li negativni, ako jesu ispiše da su negativni, inače ispiše da su različitog predznaka. Sa else if naredbom, prvo će provjeravati jesu li pozitivni, ako nisu tek onda će provjereavati jesu li negativni, i ako nisu ni jedno ni drugo, onda će izvršiti pod else.
Nije ti ovo dobro.
cin>>br[0];cin>>br[1];
@intelovac
Ne vjerujem da je to za tebe baš trivijalnost, ali ako uđeš u to nećeš pogrješiti, nemaš što izgubiti samo možeš izaći za boljim znanjem o driverima pa čak i ako ga ne završiš.
Pokusacu,pa ako uspijem javim..
#include <iostream>
using namespace std;
int main()
{
long int n,i,br,max,k,p;
cin>>n;
max=0;
for (i=1;i<=n;i++)
{
br=0;
for (k=1;k<=i;k++)
{
if (i%k==0)
{
br++;
}
if (br>max)
{
max=br;
p=i;
}
}
}
cout<<p<<endl;
cout<<br;
return 0;
}
Ovo je zadatak... http://z-trening.com/tasks.php?show_task=5000000014
Sta ne valja?
#include <iostream>
using namespace std;
int main()
{
int M,N,I;
cin >> M, N;
if(M>=0 && N<=200)
I=M+N;
cout << I << endl;
return 0
}
Wtf kad ukucam: 4 4
Izbaci: 56
??
cin >> M, N;
cin >> M >> N;
http://www.z-trening.com/tasks.php?show_task=5000000006
Ok ne kuzim kako treba rijesit ovaj zadatak,jel mi moze neko pomoc?
#include <iostream>
#include<cstdlib>
using namespace std;
int main()
{
int n,i,j,bd,max,broj;
cin>>n;
max=0;
for (i=1;i<=n;i++)
{
bd=1;
for (j=1;j<=(i/2);j++)
if((i%j) ==0) bd++;
if (bd>max)
{
max=bd;broj=i;}
}
cout<<broj<<endl;
cout<<max;
return 0;
}
Evo rijesio sam zadatak samo mi 6 primjera probija vrijeme ,kako to da rijesim,a 4 primjera rade normalno :)
Probaj staviti uvjet da ne ide do (i/2) nego do korijena od i.
Probaj staviti uvjet da ne ide do (i/2) nego do korijena od i.
Onda zadatak ne radi dobro..
Nema veze..
Nista..
Moze pomoc???
Prirodni brojevi zapisani su jedan iza drugog tako da cine beskonacni niz cifara: 12345678910111213... Za dati broj n naci n-tu cifru u beskonacnom nizu.
Sa prvog reda standardnog ulaza ucitava se ceo broj n (1 <= n <= 2*10^9).
U prvi red standardnog izlaza ispisati cifru koja se nalazi na n-tom mestu.
Primer:
Ulaz:
20
Izlaz:
1
Moze pomoc???
Prirodni brojevi zapisani su jedan iza drugog tako da cine beskonacni niz cifara: 12345678910111213... Za dati broj n naci n-tu cifru u beskonacnom nizu.
Sa prvog reda standardnog ulaza ucitava se ceo broj n (1 <= n <= 2*10^9).
U prvi red standardnog izlaza ispisati cifru koja se nalazi na n-tom mestu.
Primer:
Ulaz:
20
Izlaz:
1
#include <iostream>
#include <stdlib.h>
using namespace std;
int i, n, a, d;
char br[15];
char broj(int n){
d=1;
a=9;
i=1;
while (a<n){
d*=10;
i++;
a+=9*i*d;
}
n=n-a+9*i*d;
itoa( d + (n-1) / i, br, 10);
return br[(n-1) % i];
}
int main(){
cin >> n;
cout << broj(b);
system("Pause");
return 0;
}
Zadatak je sa z-treninga.. ;)
Pozz zanima me jel postoji neki nacin da ukoliko hocemo jedan program da uradimo na vise nacin da to kako podijelimo a da nije komentar ... Evo ispod primjer
#include<stdio.h>
int main ()
{
char rijec[10];
int i,brojac=0;
printf("Unesite rijec :");
scanf("%s",rijec);
for(i=0;i<10;i++)
if(rijec[i]!='\0')
brojac++;
else
break;
printf("Duzina rijeci je %d",brojac);
}
#include<stdio.h>
#define max 10
int main ()
{
char rijec[max];
int i,brojac=0;
printf("Unesite rijec :");
scanf("%s",rijec);
for(i=0;rijec[i]!='\0';i++)
brojac++;
printf("Duzina rijeci je %d",brojac);
}
Pozz zanima me jel postoji neki nacin da ukoliko hocemo jedan program da uradimo na vise nacin da to kako podijelimo a da nije komentar ... Evo ispod primjer
#include<stdio.h>
int main ()
{
char rijec[10];
int i,brojac=0;
printf("Unesite rijec :");
scanf("%s",rijec);
for(i=0;i<10;i++)
if(rijec[i]!='\0')
brojac++;
else
break;
printf("Duzina rijeci je %d",brojac);
}
#include<stdio.h>
#define max 10
int main ()
{
char rijec[max];
int i,brojac=0;
printf("Unesite rijec :");
scanf("%s",rijec);
for(i=0;rijec[i]!='\0';i++)
brojac++;
printf("Duzina rijeci je %d",brojac);
}
Pa stavis sa SWITCH i onda biras koji program hoces da ti izvrsi..
Zadatak je sa z-treninga.. ;)
Nije ti fora ako ti drugi rjesavaju te zadatke. Kod z treninga i slicnih sajtova je poanta stavljena na smisljanje vlastitih algoritama za neki problem, neces nista nauciti ako ih netko drugi osmisli za tebe.
Pozz zanima me jel postoji neki nacin da ukoliko hocemo jedan program da uradimo na vise nacin da to kako podijelimo a da nije komentar ... Evo ispod primjer
Jesi li ikada cuo za grananje? Ono: if, switch...
Jednostavno lupi neki if block na pocetku, tipa:
if (nesto)
{
//ucini nesto
}
else
{
//ucini nesto drugo
}
Ili mozes koristiti preprocesor kako bi jednostavno prije kompajliranja mogao birati funkciju koja ce biti kompajlirana, na taj nacin bi mogao imati dvije funkcije sa istim imenom:
#include <stdio.h>
#define FUNKCIJA 1
#if FUNKCIJA == 1
int main()
{
printf("Prva verzija main funkcije.\n");
return 0;
}
#else
int main()
{
printf("Druga verzija main funkcije.\n");
return 0;
}
#endif
Evo ovdje si pogledaj sto sve mozes za preprocesorom raditi (posebno obrati paznju na conditional compilation, to je dio koji ce te zanimati).
A ako bas mislis imati istovremeno dvije aktivne main funkcije u programu, e to nebu islo. Ne znam ni koji bi smisao toga trebao biti.
Moze pomoc???
Prirodni brojevi zapisani su jedan iza drugog tako da cine beskonacni niz cifara: 12345678910111213... Za dati broj n naci n-tu cifru u beskonacnom nizu.
Sa prvog reda standardnog ulaza ucitava se ceo broj n (1 <= n <= 2*10^9).
U prvi red standardnog izlaza ispisati cifru koja se nalazi na n-tom mestu.
Primer:
Ulaz:
20
Izlaz:
1
for petljom učitavaj znak po znak dok ne dođeš do n-tog i njega ispiši.
drugi način (bolji) je učitavati dio po dio ulaza, npr po 100 znakova. Ako se n-ta znamenka nalazi u tom polju, onda ju ispišeš, inače učitaš novi blok.
Naravno da se moze.
http://www.tutorialspoint.com/ansi_c/c_working_with_files.htm
http://www.mycplus.com/tutorials/c-programming-tutorials/file-handling/
Funkcije koje ce te najvise zanimati su:
otvaranje i zatvaranje datoteka:
fopen
fclose
za rad sa tekstualnim datotekama:
fprintf
fscanf
fgets
fputs
za rad s binarnim datotekama:
fread
fwrite
fputc
fgetc
pozz evo mene opet sa novim problemom ..
Zanima me nacin proslijedjivanja stringa funkciji i nacin deklarisanja ...
Dakle pravim svoju sopstvenu funkciju koja radi identicno sa strcmp() ;
u glavnom programu unosim stringove string1 [10], string2[10]
i pozivam funkciju string_uporedi
na koji nacin cu da proslijedim string1 i string 2 toj funkciji.. Funkcija mi ne vraca nista jer cu u toj funkciji da izvrsim poredjenje i ispisem poruku ..
konkretno zanima me proslijedjivanje stringova funkcijama ..
Pa stringovi u C-u su zapravo polja znakova ciji kraj oznacava znak ASCII vrijednosti 0. Proslijedujes ih uokolo onako kako proslijedujes i sva ostala polja - preko pokazivaca.
#include <stdio.h>
void nekafunkcija(char *string1, char *string2)
{
printf("%s %s\n", string1, string2);
}
int main()
{
char *s1="tekst1";
char *s2="tekst2";
nekafunkcija(s1, s2);
nekafunkcija("prvi", "drugi");
return 0;
}
Moze mi neko objasniti za sta sluze sstream i stringstream...
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
main()
{
int n,i;
string a;
cout<<"Upisi broj n:";
cin>>n;
for(i=0;i<=10000;i++)
{
stringstream ss;
ss<<i;
a=a+ss.str();
}
cout<<a[n]<<endl;
system("pause");
}
Umjesto da čitaš ulaz (unos) sa tipkovnice možeš ga čitati direktno iz string(stream)-a. Znači, kao da je korisnik preko tipkovnice nešto unio i spremio u string, a ti kasnije analiziraš što se nalazi u tom stringu tj. čitaš i pišeš u njega.