Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
zaruljica Forumaš(ica)
Pridružen/a: 23. 09. 2011. (13:15:25) Postovi: (41)16
Spol:
Lokacija: Split/Zagreb
|
Postano: 17:39 čet, 10. 1. 2013 Naslov: |
|
|
u mail-u mi odgovara da je netočan kod za input 43... može neko pojasnit što je krivo??
[code:1]/* Zadatak 1:
Napišite program koji učitava prirodni broj n, te "crta" vodoravnu liniju sastavljenu od n znakova plus ("+") i minus ("-"), s time da svaki 4. znak treba biti plus, a svi ostali minus (dakle, prvih 3 su minusi, zatim jedan plus, pa opet 3 minusa i tako dalje).*/
#include<stdio.h>
int main () {
int n,i;
scanf("%d", &n);
while(n>0) {
printf("---+");
n--; }
return 0;
}
[/code:1]
u mail-u mi odgovara da je netočan kod za input 43... može neko pojasnit što je krivo??
Kod: | /* Zadatak 1:
Napišite program koji učitava prirodni broj n, te "crta" vodoravnu liniju sastavljenu od n znakova plus ("+") i minus ("-"), s time da svaki 4. znak treba biti plus, a svi ostali minus (dakle, prvih 3 su minusi, zatim jedan plus, pa opet 3 minusa i tako dalje).*/
#include<stdio.h>
int main () {
int n,i;
scanf("%d", &n);
while(n>0) {
printf("---+");
n--; }
return 0;
}
|
_________________ [tex] e ^ {i \pi} + 1 = 0 [/tex]
|
|
[Vrh] |
|
Atomised Forumaš(ica)
Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
zaruljica Forumaš(ica)
Pridružen/a: 23. 09. 2011. (13:15:25) Postovi: (41)16
Spol:
Lokacija: Split/Zagreb
|
Postano: 18:01 čet, 10. 1. 2013 Naslov: |
|
|
probala sam pokrenuti, ali nije mi jasan zadatak... koliko sam ja shvatila, za bilo koji učitani broj npr 7, ispis treba biti;
---+---+---+---+---+---+---+
odnosno, 3 minusa 7 puta i 1 plus 7 puta :shock:
[size=9][color=#999999]Added after 2 minutes:[/color][/size]
nvm, glupa sam, shvatila sam :D
probala sam pokrenuti, ali nije mi jasan zadatak... koliko sam ja shvatila, za bilo koji učitani broj npr 7, ispis treba biti;
—+---+—+---+—+---+—+
odnosno, 3 minusa 7 puta i 1 plus 7 puta
Added after 2 minutes:
nvm, glupa sam, shvatila sam
_________________ [tex] e ^ {i \pi} + 1 = 0 [/tex]
|
|
[Vrh] |
|
Chardog Forumaš(ica)
Pridružen/a: 01. 11. 2011. (16:53:33) Postovi: (E)16
|
|
[Vrh] |
|
Atomised Forumaš(ica)
Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
Chardog Forumaš(ica)
Pridružen/a: 01. 11. 2011. (16:53:33) Postovi: (E)16
|
|
[Vrh] |
|
kikota Forumaš(ica)
Pridružen/a: 25. 09. 2011. (17:09:30) Postovi: (22)16
Spol:
Lokacija: Dalmacijaa <3
|
Postano: 0:20 pet, 11. 1. 2013 Naslov: |
|
|
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 22 (uključivo).
[code:1]#include<stdio.h>
int prost (int i) {
int j, br=1;
for(j=2;j<i;j++) {
if(i%j==0) br=0;
}
if(br==0) return 0;
else return 1;
}
int main () {
int n, sum=0, k, i, sum2=0, pamti;
scanf("%d", &n);
for(i=n;i<=22;i++) {
if(i<0) pamti=-i;
else pamti=i;
sum=0;
for(k=2;k<=pamti;k++) {
if(pamti%k==0 && prost(k)) {
sum=sum+k;
}
}
printf("%d ", sum);
}
return 0;
} [/code:1] **moze pomoć??' čak mi je nejasan i tekst zadatka, trazi li se jedna suma ili za svaki broj suma?
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost) svih cijelih brojeva različitih od nule koji se nalaze između n i 22 (uključivo).
Kod: | #include<stdio.h>
int prost (int i) {
int j, br=1;
for(j=2;j<i;j++) {
if(i%j==0) br=0;
}
if(br==0) return 0;
else return 1;
}
int main () {
int n, sum=0, k, i, sum2=0, pamti;
scanf("%d", &n);
for(i=n;i<=22;i++) {
if(i<0) pamti=-i;
else pamti=i;
sum=0;
for(k=2;k<=pamti;k++) {
if(pamti%k==0 && prost(k)) {
sum=sum+k;
}
}
printf("%d ", sum);
}
return 0;
} | **moze pomoć??' čak mi je nejasan i tekst zadatka, trazi li se jedna suma ili za svaki broj suma?
_________________ i najduži put počinje prvim korakom... i tako sam ja upisala pmf...
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 0:38 pet, 11. 1. 2013 Naslov: |
|
|
Pise "suma", u jednini, sto znaci da se trazi jedna suma. No, nigdje u zadatku ne pise da je [tex]n \le 22[/tex]. Sto ti verifikator kaze, za koji broj stvar pada?
Usput, ovdje bi stvarno dobro dosao onaj algoritam koji broj dijeli s njegovim djeliteljima.
Pise "suma", u jednini, sto znaci da se trazi jedna suma. No, nigdje u zadatku ne pise da je [tex]n \le 22[/tex]. Sto ti verifikator kaze, za koji broj stvar pada?
Usput, ovdje bi stvarno dobro dosao onaj algoritam koji broj dijeli s njegovim djeliteljima.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
kikota Forumaš(ica)
Pridružen/a: 25. 09. 2011. (17:09:30) Postovi: (22)16
Spol:
Lokacija: Dalmacijaa <3
|
Postano: 1:24 pet, 11. 1. 2013 Naslov: |
|
|
piše da pada za input 44.. sad sam popravila:
[code:1]/*Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost)
svih cijelih brojeva različitih od nule koji se nalaze između n i 22 (uključivo).*/
#include<stdio.h>
int prost (int i) {
int j, br=1;
for(j=2;j<i;j++) {
if(i%j==0) br=0;
}
if(br==0) return 0;
else return 1;
}
int main () {
int n, sum=0, k, i, sum2=0, pamti;
scanf("%d", &n);
if(n>22) {
for(i=22;i<=n;i++) {
sum=0;
for(k=2;k<=i;k++) {
if(i%k==0 && prost(k)) {
sum=sum+k;
}
}
sum2=sum2+sum;
}
printf("%d", sum2);}
else {
for(i=n;i<=22;i++) {
if(i<0) pamti=-i;
else pamti=i;
sum=0;
for(k=2;k<=pamti;k++) {
if(pamti%k==0 && prost(k)) {
sum=sum+k;
}
}
sum2=sum2+sum;
}
printf("%d", sum2); }
return 0;
}
[/code:1]
valjda ovako treba valjat :?
piše da pada za input 44.. sad sam popravila:
Kod: | /*Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (ignorirajući kratnost)
svih cijelih brojeva različitih od nule koji se nalaze između n i 22 (uključivo).*/
#include<stdio.h>
int prost (int i) {
int j, br=1;
for(j=2;j<i;j++) {
if(i%j==0) br=0;
}
if(br==0) return 0;
else return 1;
}
int main () {
int n, sum=0, k, i, sum2=0, pamti;
scanf("%d", &n);
if(n>22) {
for(i=22;i<=n;i++) {
sum=0;
for(k=2;k<=i;k++) {
if(i%k==0 && prost(k)) {
sum=sum+k;
}
}
sum2=sum2+sum;
}
printf("%d", sum2);}
else {
for(i=n;i<=22;i++) {
if(i<0) pamti=-i;
else pamti=i;
sum=0;
for(k=2;k<=pamti;k++) {
if(pamti%k==0 && prost(k)) {
sum=sum+k;
}
}
sum2=sum2+sum;
}
printf("%d", sum2); }
return 0;
}
|
valjda ovako treba valjat
_________________ i najduži put počinje prvim korakom... i tako sam ja upisala pmf...
|
|
[Vrh] |
|
Leolinus Forumaš(ica)
Pridružen/a: 30. 11. 2012. (16:36:41) Postovi: (10)16
|
Postano: 22:21 pet, 11. 1. 2013 Naslov: |
|
|
Program radi s malim preinakama. Umjesto Ne-array-a koristim array i prolazi... čudno... a možda i ne...
[quote="Leolinus"]Može li netko objasniti što je tu krivo?
Za 5 1782 611 3347 732 2750 <-- na ovom javlja grešku.
Izbacuje 7.
Probalo se i s indeksom od 1 do n i s indeksima od 0 do n - 1.
Zadatak je toliko jednostavan, nemam pojma zašto neće uhvatiti rješenje.
EDIT: Ma, zadatak sigurno radi, evaluator je glup ili zadatak nije dobro formuliran.
[code:1]/* 2. zadatak */
/* Napisite program koji ucitava prirodni broj n < 39 te niz od 'n' cijelih brojeva.
* Program treba ispisati sumu indeksa prvih 8 parnih elemenata niza.
* Ako parnih brojeva ima manje od 8, ispisite sumu indeksa svih parnih brojeva.
* Ako parnih brojeva uopce nema u nizu, ispisite nulu.
*/
/* Rjesenje:
* Treba biljeziti koliko je parnih brojeva ucitano i naravno cuvati sumu indeksa.
* I ovisno o uvjetima u zadatku provjeravati sto vrijedi, a sto ne.
*/
#include <stdio.h>
int main()
{
int n;
int brojParnih = 0;
int sumaParnih = 0;
int i;
int broj; // ovdje ce se ucitavati varijabla
// printf("Ucitaj prirodni broj n: ");
// komentar stavljen jer nesto pise u vezi ukrasa
scanf("%d", &n);
if (n >= 39) { printf("Upisan krivi n!\n"); exit(1); } // greska
// stavljen indeks na nulu(prvi element)
for(i = 0; i < n; i++)
{
scanf("%d", &broj);
if (broj % 2 == 0) { brojParnih++; sumaParnih += i; }
if (brojParnih == 8) break;
}
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
// ako je brojParnih < 8 onda ce se petlja odvrtiti i sumirati sve
// indekse, ako je brojParnih == 8, izlazi van iz petlje da ne zbraja
// dalje i ispisuje sumu parnih
return 0;
}[/code:1][/quote]
Program radi s malim preinakama. Umjesto Ne-array-a koristim array i prolazi... čudno... a možda i ne...
Leolinus (napisa): | Može li netko objasniti što je tu krivo?
Za 5 1782 611 3347 732 2750 ← na ovom javlja grešku.
Izbacuje 7.
Probalo se i s indeksom od 1 do n i s indeksima od 0 do n - 1.
Zadatak je toliko jednostavan, nemam pojma zašto neće uhvatiti rješenje.
EDIT: Ma, zadatak sigurno radi, evaluator je glup ili zadatak nije dobro formuliran.
Kod: | /* 2. zadatak */
/* Napisite program koji ucitava prirodni broj n < 39 te niz od 'n' cijelih brojeva.
* Program treba ispisati sumu indeksa prvih 8 parnih elemenata niza.
* Ako parnih brojeva ima manje od 8, ispisite sumu indeksa svih parnih brojeva.
* Ako parnih brojeva uopce nema u nizu, ispisite nulu.
*/
/* Rjesenje:
* Treba biljeziti koliko je parnih brojeva ucitano i naravno cuvati sumu indeksa.
* I ovisno o uvjetima u zadatku provjeravati sto vrijedi, a sto ne.
*/
#include <stdio.h>
int main()
{
int n;
int brojParnih = 0;
int sumaParnih = 0;
int i;
int broj; // ovdje ce se ucitavati varijabla
// printf("Ucitaj prirodni broj n: ");
// komentar stavljen jer nesto pise u vezi ukrasa
scanf("%d", &n);
if (n >= 39) { printf("Upisan krivi n!\n"); exit(1); } // greska
// stavljen indeks na nulu(prvi element)
for(i = 0; i < n; i++)
{
scanf("%d", &broj);
if (broj % 2 == 0) { brojParnih++; sumaParnih += i; }
if (brojParnih == 8) break;
}
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
// ako je brojParnih < 8 onda ce se petlja odvrtiti i sumirati sve
// indekse, ako je brojParnih == 8, izlazi van iz petlje da ne zbraja
// dalje i ispisuje sumu parnih
return 0;
} |
|
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
zaruljica Forumaš(ica)
Pridružen/a: 23. 09. 2011. (13:15:25) Postovi: (41)16
Spol:
Lokacija: Split/Zagreb
|
Postano: 23:31 pet, 11. 1. 2013 Naslov: |
|
|
može netko pojasnit, javlja mi da je krivo u zadaći, a za moje primjere radi.. konkretno, javlja za input:
14 9160 867 4743 4727 3019 8836 3507 6995 8191
2947 9834 3434 1350 5169
zadatak glasi:
Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati sumu zadnjih 8 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 8, ispišite sumu svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 0.
[code:1]#include<stdio.h>
int main(){
unsigned int n,j=8;
int i, suma=0, br=0,niz[18];
scanf("%u", &n);
for(i=0; i<n;i++) {
scanf("%u", &niz[i]);
}
for(i=n;i>=0;i--) {
if(niz[i]%2==(-1) || niz[i]%2==1) {
suma=suma+niz[i]; br++;
if(br==j) break;
}
}
if(br<j) {
suma=0;
for(i=n;i>=0;i--) {
if(niz[i]%2==(-1) || niz[i]%2==1)
suma=suma + niz[i];
}
}
printf("%d", suma);
return 0;}
[/code:1]
[size=9][color=#999999]Added after 5 minutes:[/color][/size]
btw sad sam provjerila za taj input i izbacuje točno :?
može netko pojasnit, javlja mi da je krivo u zadaći, a za moje primjere radi.. konkretno, javlja za input:
14 9160 867 4743 4727 3019 8836 3507 6995 8191
2947 9834 3434 1350 5169
zadatak glasi:
Napišite program koji učitava prirodni broj n≤17, te niz od n cijelih brojeva. Program treba ispisati sumu zadnjih 8 neparnih elemenata niza.
Ako neparnih brojeva ima manje od 8, ispišite sumu svih neparnih. Ako neparnih brojeva uopće nema u nizu, ispišite 0.
Kod: | #include<stdio.h>
int main(){
unsigned int n,j=8;
int i, suma=0, br=0,niz[18];
scanf("%u", &n);
for(i=0; i<n;i++) {
scanf("%u", &niz[i]);
}
for(i=n;i>=0;i--) {
if(niz[i]%2==(-1) || niz[i]%2==1) {
suma=suma+niz[i]; br++;
if(br==j) break;
}
}
if(br<j) {
suma=0;
for(i=n;i>=0;i--) {
if(niz[i]%2==(-1) || niz[i]%2==1)
suma=suma + niz[i];
}
}
printf("%d", suma);
return 0;}
|
Added after 5 minutes:
btw sad sam provjerila za taj input i izbacuje točno
_________________ [tex] e ^ {i \pi} + 1 = 0 [/tex]
|
|
[Vrh] |
|
Atomised Forumaš(ica)
Pridružen/a: 04. 09. 2007. (15:33:59) Postovi: (399)16
Lokacija: Exotica
|
|
[Vrh] |
|
zaruljica Forumaš(ica)
Pridružen/a: 23. 09. 2011. (13:15:25) Postovi: (41)16
Spol:
Lokacija: Split/Zagreb
|
|
[Vrh] |
|
Leolinus Forumaš(ica)
Pridružen/a: 30. 11. 2012. (16:36:41) Postovi: (10)16
|
Postano: 1:06 sub, 12. 1. 2013 Naslov: |
|
|
[quote="Gino"][quote="Leolinus"]Umjesto Ne-array-a koristim array i prolazi... čudno... a možda i ne...[/quote]
sta to znaci?
i koja je razlika u odnosu na prije?
ja vec zadnji put nisam vidio sta je krivo, osim sto, tehnicki gledano, nekad ne ucitas cijeli niz, pa ne znam dal to na neki nacin stvara probleme...
[/quote]
Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje.
Gino (napisa): | Leolinus (napisa): | Umjesto Ne-array-a koristim array i prolazi... čudno... a možda i ne... |
sta to znaci?
i koja je razlika u odnosu na prije?
ja vec zadnji put nisam vidio sta je krivo, osim sto, tehnicki gledano, nekad ne ucitas cijeli niz, pa ne znam dal to na neki nacin stvara probleme...
|
Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje.
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 2:29 sub, 12. 1. 2013 Naslov: |
|
|
[quote="Leolinus"]Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje.[/quote]
Nisam skuzio sta je Ne-array, ali mislio sam da mislis na to. Jesi li razmisljao o tome da je taj neki razlog mozda cinjenica da u tom slucaju ucitas cijeli niz, a u ovom ne. Npr. ako je n=23 i svi brojevi su 0, ti ces ih ucitati 8, a ne 23. Mislim, ne znam kako je tocno sego napravio da tad ne valja, ali cinjenica je da formalno nisi tocno rijesio zadatak.... Naravno, mozda je krivo iz nekih drugih razloga, nije da sam previse gledao taj kod...
V?
Leolinus (napisa): | Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje. |
Nisam skuzio sta je Ne-array, ali mislio sam da mislis na to. Jesi li razmisljao o tome da je taj neki razlog mozda cinjenica da u tom slucaju ucitas cijeli niz, a u ovom ne. Npr. ako je n=23 i svi brojevi su 0, ti ces ih ucitati 8, a ne 23. Mislim, ne znam kako je tocno sego napravio da tad ne valja, ali cinjenica je da formalno nisi tocno rijesio zadatak.... Naravno, mozda je krivo iz nekih drugih razloga, nije da sam previse gledao taj kod...
V?
_________________ Mario Berljafa
|
|
[Vrh] |
|
Leolinus Forumaš(ica)
Pridružen/a: 30. 11. 2012. (16:36:41) Postovi: (10)16
|
Postano: 2:52 sub, 12. 1. 2013 Naslov: |
|
|
[quote="Gino"][quote="Leolinus"]Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje.[/quote]
Nisam skuzio sta je Ne-array, ali mislio sam da mislis na to. Jesi li razmisljao o tome da je taj neki razlog mozda cinjenica da u tom slucaju ucitas cijeli niz, a u ovom ne. Npr. ako je n=23 i svi brojevi su 0, ti ces ih ucitati 8, a ne 23. Mislim, ne znam kako je tocno sego napravio da tad ne valja, ali cinjenica je da formalno nisi tocno rijesio zadatak.... Naravno, mozda je krivo iz nekih drugih razloga, nije da sam previse gledao taj kod...
V?[/quote]
Naravno da mi je upravo ta ideja pala na pamet. Bilo mi je malo čudno da se evaluator zeza sa svojim ispisom, valjda bi bilo lijepo da se bavi mojim.
Sigurno je problem u tome što nisu učitani svi podatci. Zapravo, kada bolje razmislim, možda i nije tako, pisalo mi je čak da program ne valja i za 5 1782 611 3347 732 2750. Što znači da imam samo 5 brojeva, i za njih gledam sumu.
A i kod se ne treba previše gledati da bi se uočila kakva greška u logici, zadatak je poprilično jasan i trivijalan.
Gino (napisa): | Leolinus (napisa): | Kao što možeš vidjeti kod ne koristi niz. Samo uzima ulaz i zbraja indekse parnih brojeva. Iz nekog razloga, ako prvo spremim cijeli ulaz u niz, a onda prođem kroz taj niz i zbrojim indekse brojeva, onda priznaje rješenje. |
Nisam skuzio sta je Ne-array, ali mislio sam da mislis na to. Jesi li razmisljao o tome da je taj neki razlog mozda cinjenica da u tom slucaju ucitas cijeli niz, a u ovom ne. Npr. ako je n=23 i svi brojevi su 0, ti ces ih ucitati 8, a ne 23. Mislim, ne znam kako je tocno sego napravio da tad ne valja, ali cinjenica je da formalno nisi tocno rijesio zadatak.... Naravno, mozda je krivo iz nekih drugih razloga, nije da sam previse gledao taj kod...
V? |
Naravno da mi je upravo ta ideja pala na pamet. Bilo mi je malo čudno da se evaluator zeza sa svojim ispisom, valjda bi bilo lijepo da se bavi mojim.
Sigurno je problem u tome što nisu učitani svi podatci. Zapravo, kada bolje razmislim, možda i nije tako, pisalo mi je čak da program ne valja i za 5 1782 611 3347 732 2750. Što znači da imam samo 5 brojeva, i za njih gledam sumu.
A i kod se ne treba previše gledati da bi se uočila kakva greška u logici, zadatak je poprilično jasan i trivijalan.
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
Postano: 3:32 sub, 12. 1. 2013 Naslov: |
|
|
[quote="Leolinus"]Sigurno je problem u tome što nisu učitani svi podatci. Zapravo, kada bolje razmislim, možda i nije tako, pisalo mi je čak da program ne valja i za 5 1782 611 3347 732 2750. Što znači da imam samo 5 brojeva, i za njih gledam sumu.
A i kod se ne treba previše gledati da bi se uočila kakva greška u logici, zadatak je poprilično jasan i trivijalan.[/quote]
Dobro, program za ono ispisuje tocno...
I uvijek treba gledati kod, u najlaksem zadtku se moze napravi jako glupa greska, koju je tesko uociti...
Kad vec pricamo, ovaj dio koji slijedi je malo redundantan.
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
Kad je brojParnih = 0, onda je i sumaParnih = 0, dakle mozes samo ispisivati sumu, if je viska...
Leolinus (napisa): | Sigurno je problem u tome što nisu učitani svi podatci. Zapravo, kada bolje razmislim, možda i nije tako, pisalo mi je čak da program ne valja i za 5 1782 611 3347 732 2750. Što znači da imam samo 5 brojeva, i za njih gledam sumu.
A i kod se ne treba previše gledati da bi se uočila kakva greška u logici, zadatak je poprilično jasan i trivijalan. |
Dobro, program za ono ispisuje tocno...
I uvijek treba gledati kod, u najlaksem zadtku se moze napravi jako glupa greska, koju je tesko uociti...
Kad vec pricamo, ovaj dio koji slijedi je malo redundantan.
if (brojParnih == 0) printf("0"); // nema parnih brojeva u nizu
else printf("%d", sumaParnih);
Kad je brojParnih = 0, onda je i sumaParnih = 0, dakle mozes samo ispisivati sumu, if je viska...
_________________ Mario Berljafa
|
|
[Vrh] |
|
zaruljica Forumaš(ica)
Pridružen/a: 23. 09. 2011. (13:15:25) Postovi: (41)16
Spol:
Lokacija: Split/Zagreb
|
Postano: 12:52 sub, 12. 1. 2013 Naslov: |
|
|
dakle, zadatak glasi:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 12; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 12, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
a kod izgleda:
[code:1]#include<stdio.h>
int sum_zn(int broj){
int sum=0, zn;
if(broj<0) broj=-broj;
while(broj>0) {
zn=broj%12;
sum=sum+zn;
broj=broj/12;
}
return sum;
}
int main( )
{
unsigned int n;
int niz[31];
int i,j,temp,zamjena, k, zamjena1, temp1;
scanf("%d",&n);
if(n<31) {
for(i=0;i<n;i++)
scanf("%d",&niz[i]);
j=n;
do {
zamjena=0;
for(i=0;i<j;i++){
if(sum_zn(niz[i])<sum_zn(niz[i+1])) {
temp=niz[i];
niz[i]=niz[i+1];
niz[i+1]=temp;
zamjena=1;
}
}
j--;
}
while(zamjena);
for(i=0;i<n;i++)
printf("%d ", niz[i]);
}
return 0;
}
[/code:1]
i sad, moje pitanje je, zašto ne radi za nulu?? odnosno, kod upisa brojeva npr:
5 4 5 0 36 7
ispisuje:
7 5 4 36 36
i još jedno pitanje, koliko sam shvatila uobičajan način sortiranja ako je suma znamenaka jednaka je uspoređivanje koji je broj veći, tako bi npr, za input 2 3 36 trebalo ispisat:
36 3
moje pitanje je, kako to postić? :)
dakle, zadatak glasi:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 12; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 12, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
a kod izgleda:
Kod: | #include<stdio.h>
int sum_zn(int broj){
int sum=0, zn;
if(broj<0) broj=-broj;
while(broj>0) {
zn=broj%12;
sum=sum+zn;
broj=broj/12;
}
return sum;
}
int main( )
{
unsigned int n;
int niz[31];
int i,j,temp,zamjena, k, zamjena1, temp1;
scanf("%d",&n);
if(n<31) {
for(i=0;i<n;i++)
scanf("%d",&niz[i]);
j=n;
do {
zamjena=0;
for(i=0;i<j;i++){
if(sum_zn(niz[i])<sum_zn(niz[i+1])) {
temp=niz[i];
niz[i]=niz[i+1];
niz[i+1]=temp;
zamjena=1;
}
}
j--;
}
while(zamjena);
for(i=0;i<n;i++)
printf("%d ", niz[i]);
}
return 0;
}
|
i sad, moje pitanje je, zašto ne radi za nulu?? odnosno, kod upisa brojeva npr:
5 4 5 0 36 7
ispisuje:
7 5 4 36 36
i još jedno pitanje, koliko sam shvatila uobičajan način sortiranja ako je suma znamenaka jednaka je uspoređivanje koji je broj veći, tako bi npr, za input 2 3 36 trebalo ispisat:
36 3
moje pitanje je, kako to postić?
_________________ [tex] e ^ {i \pi} + 1 = 0 [/tex]
|
|
[Vrh] |
|
El_Loco Forumaš(ica)
Pridružen/a: 26. 05. 2012. (15:25:04) Postovi: (31)16
Spol:
|
Postano: 13:09 sub, 12. 1. 2013 Naslov: |
|
|
[quote="zaruljica"]i još jedno pitanje, koliko sam shvatila uobičajan način sortiranja ako je suma znamenaka jednaka je uspoređivanje koji je broj veći, tako bi npr, za input 2 3 36 trebalo ispisat:
36 3
moje pitanje je, kako to postić? :)[/quote]
tako što umjesto
[code:1]if(sum_zn(niz[i])<sum_zn(niz[i+1]))[/code:1]
staviš
[code:1]if(sum_zn(niz[i])<sum_zn(niz[i+1]) || (sum_zn(niz[i])==sum_zn(niz[i+1]) && niz[i]<niz[i+1]))[/code:1]
a za sami program, ako i poprima vrijednosti 0,...,n-1, tada i+1 poprima 1,...,n, pa se dogodi da imaš niz[n], što nije član tvog niza
zaruljica (napisa): | i još jedno pitanje, koliko sam shvatila uobičajan način sortiranja ako je suma znamenaka jednaka je uspoređivanje koji je broj veći, tako bi npr, za input 2 3 36 trebalo ispisat:
36 3
moje pitanje je, kako to postić? |
tako što umjesto
Kod: | if(sum_zn(niz[i])<sum_zn(niz[i+1])) |
staviš
Kod: | if(sum_zn(niz[i])<sum_zn(niz[i+1]) || (sum_zn(niz[i])==sum_zn(niz[i+1]) && niz[i]<niz[i+1])) |
a za sami program, ako i poprima vrijednosti 0,...,n-1, tada i+1 poprima 1,...,n, pa se dogodi da imaš niz[n], što nije član tvog niza
|
|
[Vrh] |
|
|