No, pa sve ti je zadano. Samo napiši kako se polje sortira, a za referentni tip izaberi T.
Programiranje u C++-u - pitanja i odgovori
- poruka: 7.285
- |
- čitano: 1.592.165
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Trebam pomoc oko zadatka..
Glasi ovako : Dat je niz A od N prirodnih brojeva.Napisati program kojim se ispisuje indeks onog elementa u nizu A za koji se zbir elemenata niza koji stoje prije tog elementa najmanje razlikuje od zbira elemenata koji stoje poslije njega...
Primjer:
Ulaz:5 ; 7,1,3,8,10
Izlaz:4
Ja sam uradio ali program ne radi ,ako neko zna sta treba promjeniti u programu...
Evo kod:
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main()
{
int n,niz[500],min,i,ind;
float s1,s2;
cout<<"Unesi duzinu niza"<<endl;
cin>>n;
cout<<"Unesi brojeve "<<endl;
for (i=1;i<=n;i++)
{
s2=0;
cin>>niz[i];
s2+=niz[i];
}
s2=s2-niz[1];
min=abs(s1-s2);
ind=1;
s1=0;
for (i=2;i<=n;i++)
{
s1+=niz[i-1];
s2-=niz[i];
if (abs(s1-s2)<min)
{min=abs(s1-s2);
ind=i;
}
}
cout<<ind<<endl;
system("PAUSE");
return 0;
}
Trebam pomoc oko zadatka..
Glasi ovako : Dat je niz A od N prirodnih brojeva.Napisati program kojim se ispisuje indeks onog elementa u nizu A za koji se zbir elemenata niza koji stoje prije tog elementa najmanje razlikuje od zbira elemenata koji stoje poslije njega...
Primjer:
Ulaz:5 ; 7,1,3,8,10
Izlaz:4
Ja sam uradio ali program ne radi ,ako neko zna sta treba promjeniti u programu...
Evo kod:
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main()
{
int n,niz[500],min,i,ind;
float s1,s2;
cout<<"Unesi duzinu niza"<<endl;
cin>>n;
cout<<"Unesi brojeve "<<endl;
for (i=1;i<=n;i++)
{
s2=0;
cin>>niz[i];
s2+=niz[i];
}
s2=s2-niz[1];
min=abs(s1-s2);
ind=1;
s1=0;
for (i=2;i<=n;i++)
{
s1+=niz[i-1];
s2-=niz[i];
if (abs(s1-s2)<min)
{min=abs(s1-s2);
ind=i;
}
}
cout<<ind<<endl;
system("PAUSE");
return 0;
}
Nakon što si upisao elemente,trebaš prvo proći jedanput kroz niz i vidjeti koje je razlika najmanja i onda još jednom prolaziš s for petljom da vidiš da li je razlika jednaka toj minimalnoj.
De ubaci u kod i posalji mi ako mozes..
Ma da,taman posla.Napiši kod pa pitaj ako si zapeo negdje.
evo u knjizi "demistificirani c++" jedan dosta zanimljiv primjer:
#include <iostream>
using namespace std;
int main()
{
float a=0.3; //svejedno dal je double ili float, ista stvar i za b
float b=a*10-2.7;
if(a==b) cout<<a<<" je jednako "<<b<<endl;
else cout<<a<<" nije jednako "<<b<<endl;
return 0;
}
i na kraju ispada da 0.3 nije jednako 0.3 u knjizi je uktratko objasnjeno zasto je to tako i kako da se takvo sto izbjegne ali mene zanima sta se tocno dogodilo (detaljno, opsirno) pa je doslo do ovog. Pa eto ako neko ima volje da mi objasni
Ma da,taman posla.Napiši kod pa pitaj ako si zapeo negdje.
Evo uradio sam tako sto sam s2=0 stavio ispred for petlje..
U svakom slucaju hvala
Ako vam nije problem treba mi program da kad se unese neki broj npr. n=3 da mi ispise ovo
123
894
765
ili za n=4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Ako vam nije problem treba mi program da kad se unese neki broj npr. n=3 da mi ispise ovo
123
894
765
ili za n=4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n==3)
{
cout<<123<<endl<<894<<endl<<765<<endl;
}
if(n==4)
{
cout<<"1 2 3 4\n"<<"12 13 14 5\n"<<"10 16 15 6\n"<<"10 9 8 7\n";
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if(n==3)
{
cout<<123<<endl<<894<<endl<<765<<endl;
}
if(n==4)
{
cout<<"1 2 3 4\n"<<"12 13 14 5\n"<<"10 16 15 6\n"<<"10 9 8 7\n";
}
return 0;
}
ja bi još samo dodao system("Pause");
vidim, stručnjaci se skupili pa se nebum mešal
Zar niko nece napisati ono sto mi treba a ne ova zezanja. treba da kad mi se otvori prozor da unesem bilo koji broj i da se na onaj nacin ispisuje.
Zar niko nece napisati ono sto mi treba a ne ova zezanja. treba da kad mi se otvori prozor da unesem bilo koji broj i da se na onaj nacin ispisuje.
pomogli bi mi ali iz onog sto si nam dao se nemore nista korisna izvuc za rjesenje tvog problema
Zar niko nece napisati ono sto mi treba a ne ova zezanja. treba da kad mi se otvori prozor da unesem bilo koji broj i da se na onaj nacin ispisuje.
pomogli bi mi ali iz onog sto si nam dao se nemore nista korisna izvuc za rjesenje tvog problema
Program ispisuje matricu u spiralu, ali tudum nije to napisao.
Algoritam je prekompliciran pa mi se ne da pisati...Program ispisuje matricu u spiralu, ali tudum nije to napisao.
Bas ovo treba sto mi je tudum xxxmitoxxx napisao. Pa kao mozete da mi uardite to bio bih vam mnogo zahvalan
Ako vam nije problem treba mi program da kad se unese neki broj npr. n=3 da mi ispise ovo
123
894
765
ili za n=4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Ja sam rijesio zadatak na nacin da sam simulirao kretanje kroz matricu. Kad dodem do kraja reda ili do dodem do nekog polja koje je vec ispunjeno samo rotiram smjer kretanja za 90. I da bi olaksao kodiranje napravio sam 2d polje kojemu su rubna polja popunjena sa 1 tako da mi je jednostavnije iskodirati.
#include <iostream>
#include <iomanip>
#include <vector>
#define max 1000;
using namespace std;
void rotate(int& xDir,int& yDir){
if(xDir != 0){
yDir = xDir;
xDir = 0;
}
else{
xDir = -yDir;
yDir = 0;
}
}
int main(){
vector<vector<int> > matrix;
int n;
cin>>n;
vector<int> vi(n+2,0);
matrix.insert(matrix.begin(),n+2,vi);
for(int i = 0;i<n+2;i++){
matrix[i][0] = 1;
matrix[0][i] = 1;
matrix[n+1][i] = 1;
matrix[i][n+1] = 1;
}
int number = 1,xPos = 1, yPos = 1,xDir = 1,yDir = 0;
while( number <= n*n){
matrix[yPos][xPos]=number;
if(matrix[yPos + yDir][xPos + xDir])
rotate(xDir,yDir);
xPos += xDir;
yPos += yDir;
number++;
}
int maxDigit = 0, maxNumber = n*n;
while(maxNumber>0){
maxDigit++;
maxNumber/=10;
}
for(int i =1;i<=n;i++){
for(int j = 1;j<=n;j++)
cout<<setw(maxDigit)<<matrix[i][j]<<" ";
cout<<endl;
}
return 0;
}
ja sam tako na prvu razmišljo, na drugo sam napiso while petlju s popunjanjem, a na trecu sam napravio rekurziju
#include <iostream>
#include <stdio.h>
using namespace std;
int m[100][100],i,j,n;
void krug(int x, int y, int l, int br){
int i;
for (i=0; i<l-1; i++, br++) m[x][y+i]=br;
for (i=0; i<l-1; i++, br++) m[x+i][y+l-1]=br;
for (i=l-1; i>=1; i--, br++) m[x+l-1][y+i]=br;
for (i=l-1; i>=1; i--, br++) m[x+i][y]=br;
if (l-2>=0) krug(x+1,y+1,l-2,br);
if ((l-2<=0) && (n%2 == 1 ))m[x][y]=n*n;
}
int main(){
cin >> n;
krug(0,0,n,1);
for(i=0; i<n; i++){
for(j=0; j<n; j++)
printf("%3d ",m[i][j]);
cout << endl;
}
}
jel ima nesto jednostavnije od ovog jer znat ce profesor da ovo nisam aj uradio, ako se moze nekako pojednostaviti sa obicnim for petljama
jel ima nesto jednostavnije od ovog jer znat ce profesor da ovo nisam aj uradio, ako se moze nekako pojednostaviti sa obicnim for petljama
Ako ti uradiš sam, on nema šta da sumnja, ako ti mi uradimo onda s pravom može misliti da ti nisi uradio.
BTW, ako ti je ovo komplikovano...
nije nego nisam ja vidio ovaj drugi program vec onaj prvi sto je duzi pa je on amlo kompliciraniji ali evo ima ovaj drugi
nije nego nisam ja vidio ovaj drugi program vec onaj prvi sto je duzi pa je on amlo kompliciraniji ali evo ima ovaj drugi
znaš li kako se matrica popunja u mom riješenju?
P.S. znaš li uopće što je rekurzija?
Može se i sa petljama, tako da se popunjava matrica na način: gornji red - desni stupac - donji red - lijevi stupac-
Sa svakim sljedećim popunjavanjem smanjujemo broj polja koje treba popuniti, a popunjavanje se vrši dok ne dođemo do broja veličine matrice na kvadrat (while(index<=broj*broj)).
#include<iostream>
using namespace std;
int main()
{
int broj, index = 1, i = 0, j = 0, razlikaI = 0, razlikaJ = 0;
cout<< "Unesi broj: ";
cin>> broj;
int** matrica = new int*[broj];
for(int i=0; i<broj; i++)
{
matrica[i] = new int [broj];
}
while(index <= broj * broj)
{
for(j=razlikaJ; j<broj-1-razlikaJ; j++)
{
matrica[i][j] = index;
index++;
}
for(i=razlikaI; i<broj-1-razlikaI; i++)
{
matrica[i][j] = index;
index++;
}
for(j=broj-1-razlikaJ; j>razlikaJ; j--)
{
matrica[i][j] = index;
index++;
}
for(i=broj-1-razlikaI; i>razlikaI; i--)
{
matrica[i][j] = index;
index++;
}
razlikaI++;
razlikaJ++;
i++;
if(index==broj*broj)
{
matrica[i][j+1] = index;
break;
}
}
for(int i=0; i<broj; i++)
{
for(int j=0; j<broj; j++)
{
cout<< matrica[i][j] << " ";
}
cout<< endl;
}
delete [] matrica;
return 0;
}
Za zadati pozitivni cijeli broj N potrebno je da nađete na koliko načina se može taj broj
napisati kao zbir dva pozitivna broja, s tim da je prvi od ta dva broja parni broj.
Kod mene u programu radi da ispise sve kombinacije ali nece da broji koliko kombinacija ima..
Evo kod:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,i,j,br;
br=0;
cout<<"Unesi broj"<<endl;
cin>>n;
for (i=2;i<n;i=i+2)
for (j=1;j<n;j++)
if ((i+j==n)&&(i%2==0))
{
cout<<" "<<i;
cout<<" "<<j;
cout<<endl;
}
while (i+j==n) {
br+=1;
}
cout<<br<<endl;
system ("PAUSE");
return 0;
}
Za zadati pozitivni cijeli broj N potrebno je da nađete na koliko načina se može taj broj
napisati kao zbir dva pozitivna broja, s tim da je prvi od ta dva broja parni broj.
Kod mene u programu radi da ispise sve kombinacije ali nece da broji koliko kombinacija ima..
Evo kod:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,i,j,br;
br=0;
cout<<"Unesi broj"<<endl;
cin>>n;
for (i=2;i<n;i=i+2)
for (j=1;j<n;j++)
if ((i+j==n)&&(i%2==0))
{
cout<<" "<<i;
cout<<" "<<j;
cout<<endl;
}
while (i+j==n) {
br+=1;
}
cout<<br<<endl;
system ("PAUSE");
return 0;
}
Ne razumijem zašto while i zašto izvan IF naredbe.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,i,j,br;
br=0;
cout<<"Unesi broj"<<endl;
cin>>n;
for (i=2;i<n;i=i+2)
for (j=1;j<n;j++)
if ((i+j==n)&&(i%2==0))
{
cout<<" "<<i;
cout<<" "<<j;
cout<<endl;
if(i+j==n)
br++;
}
cout<<br<<endl;
system ("PAUSE");
return 0;
}
Za zadati pozitivni cijeli broj N potrebno je da nađete na koliko načina se može taj broj
napisati kao zbir dva pozitivna broja, s tim da je prvi od ta dva broja parni broj.
Kod mene u programu radi da ispise sve kombinacije ali nece da broji koliko kombinacija ima..
Evo kod:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,i,j,br;
br=0;
cout<<"Unesi broj"<<endl;
cin>>n;
for (i=2;i<n;i=i+2)
for (j=1;j<n;j++)
if ((i+j==n)&&(i%2==0))
{
cout<<" "<<i;
cout<<" "<<j;
cout<<endl;
}
while (i+j==n) {
br+=1;
}
cout<<br<<endl;
system ("PAUSE");
return 0;
}
Ne razumijem zašto while i zašto izvan IF naredbe.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int n,i,j,br;
br=0;
cout<<"Unesi broj"<<endl;
cin>>n;
for (i=2;i<n;i=i+2)
for (j=1;j<n;j++)
if ((i+j==n)&&(i%2==0))
{
cout<<" "<<i;
cout<<" "<<j;
cout<<endl;
if(i+j==n)
br++;
}
cout<<br<<endl;
system ("PAUSE");
return 0;
}
Pa ne radi ni ovo tvoje ;)
Ja sam samo promijenio ovaj dio koji zbraja kolko ima kombinacija.Ovo gore nisam dirao,ako si gore fuljao onda popravi.Al ti si rekao da ti dobro ne zbraja i to sam promijenio.Ja sam isprobao i meni radi.
Ja sam samo promijenio ovaj dio koji zbraja kolko ima kombinacija.Ovo gore nisam dirao,ako si gore fuljao onda popravi.Al ti si rekao da ti dobro ne zbraja i to sam promijenio.Ja sam isprobao i meni radi.
EDIT: Evo sad radi..
Jesi skopirao ovaj donji kod?Jer ako nisi .
EDIT:Vidim da si skopirao krivi kod.
@intelovac, za sve je kriva tvoja brzopletost, kud' žuriš?