nicki minaj (napisa): |
no, je li se sumiraju prosti faktori od svih cijelih brojeva u tom intervalu, u jednu sumu, ili se ispisuju sume prostih faktora izracunate za svaki cijeli broj posebno, to jest vise suma?
|
Citat: |
takoder, ako uvazavamo kratnost faktora, znaci dodajemo faktor u sumu onoliko puta kolika mu je kratnost? |
Kod: |
#include <stdio.h>
#include <stdlib.h> #include <math.h> int main(){ int i; double a[7],max,min; for(i=0;i<8;i++){ scanf("%lg",&a[i]); if (i==0) {max=a[0]; min=a[0];} if (fabs(a[i])>fabs(max)) max=fabs(a[i]); if (fabs(a[i])<fabs(min)) min=fabs(a[i]); } printf("%g %g",max,min); return 0; } |
celeste (napisa): |
Oke, mozhe pomoch oko ovog zadatka:
Napišite program koji učitava 6 realnih brojeva, te ispisuje umnožak broja koji ima najveću apsolutnu vrijednost s brojem koji ima najmanju apsolutnu vrijednost. Ako dva broja imaju jednaku apsolutnu vrijednost, za većeg/manjeg uzimate onog koji je prije učitan. Rezultat obavezno ispišite koristeći format %g! Kod mi radi ali kazhe provjera zadacha da nije dobro. } |
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; } |
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; } |
Kod: |
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 2⋅4^i-58 koji se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)!
Oprez: može biti a<b ili a>b ili a=b! |
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; } |
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; } |
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.
|
Leolinus (napisa): |
Umjesto Ne-array-a koristim array i prolazi... čudno... a možda i ne... |
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;} |
Kod: |
for(i=n;i>=0;i--) { if(niz[i]%2==(-1) || niz[i]%2==1) { suma=suma+niz[i]; br++; if(br==j) break; } |
Gino (napisa): | ||
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... |
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. |
Gino (napisa): | ||
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): |
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. |
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; } |
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ć? ![]() |
Kod: |
if(sum_zn(niz[i])<sum_zn(niz[i+1])) |
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])) |
Gino (napisa): | ||
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... |
Popara (napisa): |
Kolega ti je želio reći da kad učitavaš brojeve da ne pišeš onaj razmak tj. možeš samo staviti scanf ("%d", &sadasnji); i da moraš učitati 5 brojeva a ne 4 kao što ti učitaš ![]() |
zadatak.c | |||
Description: |
|
![]() Download |
|
Filename: | zadatak.c | ||
Filesize: | 599 Bytes | ||
Downloaded: | 129 Time(s) |
shakespeare (napisa): |
Znači, dokad se zadaće mogu slati? ![]() |
Citat: |
Bitno: Aplikacija za “zadace” se zakljucava s pocetkom drugog kolokvija. Nakon toga, nema vise novih prijava, ni predaje zadataka. U tom trenu vrijedi: Tko je “unutra” i koliko je predao/la . . . , to je to, i nema iznimaka! |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.