Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Shirohige Forumaš(ica)
Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol:
|
Postano: 11:06 sri, 29. 5. 2013 Naslov: |
|
|
[quote="setebos93"]
@Shirohige
Nešto ti ne valja s ispisom, ako ti se najstariji datum pojavljuje samo jednom, onda ga iz nekog razloga u izlaznu datoteku zapiše dva puta.[/quote]
Taman sam i ja to primijetio, hvala ipak na odgovoru, ispravio sam pa ćemo vidjeti hoće li proći.
EDIT: Prošlo je! :D
setebos93 (napisa): |
@Shirohige
Nešto ti ne valja s ispisom, ako ti se najstariji datum pojavljuje samo jednom, onda ga iz nekog razloga u izlaznu datoteku zapiše dva puta. |
Taman sam i ja to primijetio, hvala ipak na odgovoru, ispravio sam pa ćemo vidjeti hoće li proći.
EDIT: Prošlo je!
Zadnja promjena: Shirohige; 12:57 sri, 29. 5. 2013; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
paca Forumaš(ica)
Pridružen/a: 29. 05. 2013. (11:24:56) Postovi: (A)16
Spol:
|
Postano: 11:29 sri, 29. 5. 2013 Naslov: |
|
|
Može pomoć za zadaću, 4. zadatak (stringovi)
Napišite program koji učitava jednu liniju teksta s najviše 19639 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.
Poslala sam nekoliko puta rješenje, ali nije još proradilo, a zaboravila sam lozinku za mail. Treba li ispisati rješenje sa po jednim razmakom između svake dvije riječi? Smije li na kraju biti razmak?
ovo mi je trenutno rješenje:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main (void){
int i,n,c,br,j;
br=0;
char s[19640];
scanf("%[^\n]", s);
n=strlen(s);
for (i=0; i<n; i++){
if (s[i]!=' ') br++;
else {
if (br>0){
c++;
if (c%4!=0){
for (j=0;j<br;j++){
printf("%c", s[i-j-1]);
}
printf(" ");
}
br=0;
}
}
}
c++;
if (c%4!=0){
for (i=0; i<br; i++){
printf("%c", s[n-i-2]);
}
}
return 0;
}
Može pomoć za zadaću, 4. zadatak (stringovi)
Napišite program koji učitava jednu liniju teksta s najviše 19639 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.
Poslala sam nekoliko puta rješenje, ali nije još proradilo, a zaboravila sam lozinku za mail. Treba li ispisati rješenje sa po jednim razmakom između svake dvije riječi? Smije li na kraju biti razmak?
ovo mi je trenutno rješenje:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main (void){
int i,n,c,br,j;
br=0;
char s[19640];
scanf("%[^\n]", s);
n=strlen(s);
for (i=0; i<n; i++){
if (s[i]!=' ') br++;
else {
if (br>0){
c++;
if (c%4!=0){
for (j=0;j<br;j++){
printf("%c", s[i-j-1]);
}
printf(" ");
}
br=0;
}
}
}
c++;
if (c%4!=0){
for (i=0; i<br; i++){
printf("%c", s[n-i-2]);
}
}
return 0;
}
|
|
[Vrh] |
|
frutabella Forumaš(ica)
Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
Postano: 14:57 sri, 29. 5. 2013 Naslov: |
|
|
1. zadatak s datotekama:
Napišite program koji čita datoteku "hlyjchxi.in", te ju prepisuje u datoteku "hlyjchxi.out" tako da u prepisivanju izostavi sve znakove 'i', 's', 'u'.
Da li je ovo ok?
(Da bi zadatak bio primljen moram izbrisati ovu provjeru za otvaranje funk., je? )
[code:1]#include<stdio.h>
#include<stdlib.h>
int main (void){
FILE *in, *out;
int c;
if((in=fopen("hlyjchxi.in", "rt"))==NULL)
{
fprintf(stderr, "Greska prilikom citanja datoteke: %s\n", in);
exit(1);
}
if((out=fopen("hlyjchxi.out", "wt"))==NULL)
{
fprintf(stderr, "Greska prilikom pisanja datoteke: %s\n", out);
exit(2);
}
while((c=fgetc(in))!=EOF)
{
if(c!='i' && c!='s' && c!='u')
fprintf(out, "%c", c);
}
fclose(in);
fclose(out);
return 0;
}
[/code:1]
Kako na primjeru na kompjuteru vidjeti da li je ovo dobro?
Mislim, znam kad je u pitanje dat.txt,
a sta s dat.in odnosno dat.out?
1. zadatak s datotekama:
Napišite program koji čita datoteku "hlyjchxi.in", te ju prepisuje u datoteku "hlyjchxi.out" tako da u prepisivanju izostavi sve znakove 'i', 's', 'u'.
Da li je ovo ok?
(Da bi zadatak bio primljen moram izbrisati ovu provjeru za otvaranje funk., je? )
Kod: | #include<stdio.h>
#include<stdlib.h>
int main (void){
FILE *in, *out;
int c;
if((in=fopen("hlyjchxi.in", "rt"))==NULL)
{
fprintf(stderr, "Greska prilikom citanja datoteke: %s\n", in);
exit(1);
}
if((out=fopen("hlyjchxi.out", "wt"))==NULL)
{
fprintf(stderr, "Greska prilikom pisanja datoteke: %s\n", out);
exit(2);
}
while((c=fgetc(in))!=EOF)
{
if(c!='i' && c!='s' && c!='u')
fprintf(out, "%c", c);
}
fclose(in);
fclose(out);
return 0;
}
|
Kako na primjeru na kompjuteru vidjeti da li je ovo dobro?
Mislim, znam kad je u pitanje dat.txt,
a sta s dat.in odnosno dat.out?
|
|
[Vrh] |
|
krki Forumaš(ica)
Pridružen/a: 06. 07. 2011. (20:30:12) Postovi: (2E)16
|
Postano: 17:14 sri, 29. 5. 2013 Naslov: |
|
|
5. zadaća, 3. zadatak (kao i kod kolega prije)
Meni se program, naime, ruši. Ako može netko malo pogledati?
[code:1]#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int koliko;
int d;
int m;
int g;
}datum;
int main ( void )
{
FILE *in, *out;
datum *niz;
datum temp;
int n, i=0, j, k;
in=fopen("pcrjmzbf.in","r");
if(in==NULL)
return -1;
out=fopen("pcrjmzbf.out","w");
if(out==NULL)
return -2;
fscanf(in, "%d", &n);
niz=(datum*)malloc(n*sizeof(datum));
while(i<n)
{
fscanf(in, "\n%d.%d.%d.", niz[i].d, niz[i].m, niz[i].g);
niz[i].koliko=1;
i++;
}
for(j=0;j<n-1;j++)
{
for(k=j+1;k<n;k++)
{
if(niz[j].g>niz[k].g)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m>niz[k].m)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m==niz[k].m && niz[j].d>niz[k].d)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m==niz[k].m && niz[j].d==niz[k].d)
{
niz[j].koliko++;
niz[k]=niz[n-1];
n--;
k--;
}
}
fprintf(out, "%d|%d.%d.%d.\n", niz[j].koliko, niz[j].d, niz[j].m, niz[j].g);
}
fprintf(out, "%d|%d.%d.%d.", niz[k].koliko, niz[k].d, niz[k].m, niz[k].g);
free(niz);
fclose(in);
fclose(out);
return 0;
}
[/code:1]
EDIT: Nevermind, mislim da sam pronašao glupost :D
5. zadaća, 3. zadatak (kao i kod kolega prije)
Meni se program, naime, ruši. Ako može netko malo pogledati?
Kod: | #include <stdio.h>
#include <stdlib.h>
typedef struct
{
int koliko;
int d;
int m;
int g;
}datum;
int main ( void )
{
FILE *in, *out;
datum *niz;
datum temp;
int n, i=0, j, k;
in=fopen("pcrjmzbf.in","r");
if(in==NULL)
return -1;
out=fopen("pcrjmzbf.out","w");
if(out==NULL)
return -2;
fscanf(in, "%d", &n);
niz=(datum*)malloc(n*sizeof(datum));
while(i<n)
{
fscanf(in, "\n%d.%d.%d.", niz[i].d, niz[i].m, niz[i].g);
niz[i].koliko=1;
i++;
}
for(j=0;j<n-1;j++)
{
for(k=j+1;k<n;k++)
{
if(niz[j].g>niz[k].g)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m>niz[k].m)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m==niz[k].m && niz[j].d>niz[k].d)
{
temp=niz[j];
niz[j]=niz[k];
niz[k]=temp;
}
else if(niz[j].g==niz[k].g && niz[j].m==niz[k].m && niz[j].d==niz[k].d)
{
niz[j].koliko++;
niz[k]=niz[n-1];
n--;
k--;
}
}
fprintf(out, "%d|%d.%d.%d.\n", niz[j].koliko, niz[j].d, niz[j].m, niz[j].g);
}
fprintf(out, "%d|%d.%d.%d.", niz[k].koliko, niz[k].d, niz[k].m, niz[k].g);
free(niz);
fclose(in);
fclose(out);
return 0;
}
|
EDIT: Nevermind, mislim da sam pronašao glupost
|
|
[Vrh] |
|
Popara Forumaš(ica)
Pridružen/a: 17. 08. 2012. (19:05:50) Postovi: (3B)16
Spol:
Lokacija: Zadar/Zagreb
|
|
[Vrh] |
|
shakespeare Forumaš(ica)
Pridružen/a: 19. 11. 2011. (21:55:27) Postovi: (11)16
|
Postano: 20:19 čet, 30. 5. 2013 Naslov: rekurzije |
|
|
Lijepi pozdrav, vidim sada da mi aplikacija nije prihvatila 3. zadatak iz prve zadaće pa ako bi netko mogao naći grešku ili razlog, bila bih vrlo zahvalna.
Zad. Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=48).
#include <stdio.h>
int greska (int a[], int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
{
if(a[j]==a[i])
return 1;
}
return 0;
}
int suma=0;
void f(int n, int a[], int k,int l)
{
suma+=n;
if(l==0) return;
int i,x,s;
for(i=0;i<k;i++)
{ s=1;x=n;
while(x)
{
if((x%10)==(a[i]))
{
s=0;
break;
}
x/=10;
}
if(s) f(10*n+a[i],a,k,l-1);
}
return;
}
int main(void)
{
int k,i, a[9]={};
scanf("%d", &k);
for(i=0;i<k;i++)
scanf("%d", &a[i]);
if(greska(a,k)) printf("Greska!");
else {
f(0,a,k,k);
printf("%d",suma);}
return 0;
}
Lijepi pozdrav, vidim sada da mi aplikacija nije prihvatila 3. zadatak iz prve zadaće pa ako bi netko mogao naći grešku ili razlog, bila bih vrlo zahvalna.
Zad. Napišite program koji učitava prirodni broj k < 9, te niz od k različitih dekadskih znamenaka. Ukoliko učitane znamenke nisu različite, program treba ispisati poruku "Greska!" (bez navodnika).
Program treba ispisati sumu svih prirodnih brojeva čije su znamenke iz učitanog niza, te se ne ponavljaju unutar jednog broja.
Na primjer, za k = 2 i učitane brojeve 1 i 3, program ispisuje "48" (jer je 1+3+13+31=4.
#include <stdio.h>
int greska (int a[], int k)
{
int i,j;
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
{
if(a[j]==a[i])
return 1;
}
return 0;
}
int suma=0;
void f(int n, int a[], int k,int l)
{
suma+=n;
if(l==0) return;
int i,x,s;
for(i=0;i<k;i++)
{ s=1;x=n;
while(x)
{
if((x%10)==(a[i]))
{
s=0;
break;
}
x/=10;
}
if(s) f(10*n+a[i],a,k,l-1);
}
return;
}
int main(void)
{
int k,i, a[9]={};
scanf("%d", &k);
for(i=0;i<k;i++)
scanf("%d", &a[i]);
if(greska(a,k)) printf("Greska!");
else {
f(0,a,k,k);
printf("%d",suma);}
return 0;
}
|
|
[Vrh] |
|
frutabella Forumaš(ica)
Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
Postano: 22:19 čet, 30. 5. 2013 Naslov: |
|
|
2. zadatak iz trece zadace:
/*2.zadatak: Napišite program koji uèitava prirodni broj n ? 17 i niz od 2n-1 cijelih brojeva.
Program treba kreirati gornjetrokutastu matricu M reda n kojoj se uèitani brojevi nalaze
po redu u prvom retku i zadnjem stupcu (tj. uèitani brojevi su redom M11, M12,..., M1n, M2n,... Mnn ),
a za elemente gornjeg trokuta vrijedi:
Mij=(2Mi-1j-6Mij+1) mod 12151413,
gdje mod oznaèava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente glavneijagonale matrice M (ispisane brojeve odvojite razmakom) */
[code:1]
#include<stdio.h>
int main(void){
int n, i, j, niz[33];
int M[17][17]={0};
scanf("%d", &n);
for (i=0; i<2*n-1; ++i)
scanf("%d", &niz[i]);
for(i=0; i<n; ++i)
{ M[i][n-1]=niz[n-1+i];
M[0][i]=niz[i];
}
for(i=1; i<=n-2; ++i)
for(j=n-2; j>=1; --j)
if(i<=j) M[i][j]=((2*M[i-1][j]-6*M[i][j+1])%12151413);
for (i=0; i<n; ++i)
printf("%d ", M[i][i]);
return 0;
}[/code:1]
zasto mi ne prihvaca?
2. zadatak iz trece zadace:
/*2.zadatak: Napišite program koji uèitava prirodni broj n ? 17 i niz od 2n-1 cijelih brojeva.
Program treba kreirati gornjetrokutastu matricu M reda n kojoj se uèitani brojevi nalaze
po redu u prvom retku i zadnjem stupcu (tj. uèitani brojevi su redom M11, M12,..., M1n, M2n,... Mnn ),
a za elemente gornjeg trokuta vrijedi:
Mij=(2Mi-1j-6Mij+1) mod 12151413,
gdje mod oznaèava ostatak pri dijeljenju lijevog broja s desnim.
Program treba ispisati elemente glavneijagonale matrice M (ispisane brojeve odvojite razmakom) */
Kod: |
#include<stdio.h>
int main(void){
int n, i, j, niz[33];
int M[17][17]={0};
scanf("%d", &n);
for (i=0; i<2*n-1; ++i)
scanf("%d", &niz[i]);
for(i=0; i<n; ++i)
{ M[i][n-1]=niz[n-1+i];
M[0][i]=niz[i];
}
for(i=1; i<=n-2; ++i)
for(j=n-2; j>=1; --j)
if(i<=j) M[i][j]=((2*M[i-1][j]-6*M[i][j+1])%12151413);
for (i=0; i<n; ++i)
printf("%d ", M[i][i]);
return 0;
} |
zasto mi ne prihvaca?
|
|
[Vrh] |
|
gogo_ Forumaš(ica)
Pridružen/a: 07. 10. 2009. (17:06:47) Postovi: (3F)16
|
Postano: 22:45 čet, 30. 5. 2013 Naslov: |
|
|
Ljudi ako bi netko mogao pomoc i reci zasto ovo ne prolazi za zadacu, kod mene za sve primjere kaze da je dobro...Zadaca 4, zadatak 2
Napišite program koji učitava jednu liniju teksta s najviše 14669 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.
[code:1]
#include<stdio.h>
#include<string.h>
void obrniporedak(char n[],char t[],int p, int z)
{
int i,j=0;
for(i=z;i>=p;i--)
{
t[p+j]=n[i];
j++;
}
}
int main()
{
char n[14670], t[14670];
int i=0,d,q,br=0,j=0;
scanf("%[^\n]", n);
d=strlen(n);
for(i=0;i<d;i++)
{
if(!(n[i]==' '))
{
for(j=i+1;j<d;j++)
{
if((n[j]==' ')&&((!(n[j-1]==' '))))
{
q=j-1;
obrniporedak(n,t,i,q);
break;
}
if(j==d-1)
{
q=j;
obrniporedak(n,t,i,q);
}
}
i=j;
}
}
for(i=0;i<d;i++)
{
if((t[i]>='a' && t[i]<='z') || (t[i]>='A'&&t[i]<='Z'))
n[i]=t[i];
}
for(i=0;i<d;i++)
{
if((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
br++;
if(br%4==0 && br>0)
{
while((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
i++;
}
while(!((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z')))
{
i++;
}
}
else
while((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
printf("%c",n[i]);
i++;
}
}
if(i<d)
printf("%c",n[i]);
}
return 0;
}
[/code:1]
Ljudi ako bi netko mogao pomoc i reci zasto ovo ne prolazi za zadacu, kod mene za sve primjere kaze da je dobro...Zadaca 4, zadatak 2
Napišite program koji učitava jednu liniju teksta s najviše 14669 znakova. Tom tekstu treba izbrisati svaku 4. riječ, a ostalima izokrenuti redoslijed slova (same riječi ostaju u originalnom poretku). Tako dobiveni tekst treba ispisati.
Možete pretpostaviti da tekst sadrži samo slova i razmake.
Kod: |
#include<stdio.h>
#include<string.h>
void obrniporedak(char n[],char t[],int p, int z)
{
int i,j=0;
for(i=z;i>=p;i--)
{
t[p+j]=n[i];
j++;
}
}
int main()
{
char n[14670], t[14670];
int i=0,d,q,br=0,j=0;
scanf("%[^\n]", n);
d=strlen(n);
for(i=0;i<d;i++)
{
if(!(n[i]==' '))
{
for(j=i+1;j<d;j++)
{
if((n[j]==' ')&&((!(n[j-1]==' '))))
{
q=j-1;
obrniporedak(n,t,i,q);
break;
}
if(j==d-1)
{
q=j;
obrniporedak(n,t,i,q);
}
}
i=j;
}
}
for(i=0;i<d;i++)
{
if((t[i]>='a' && t[i]<='z') || (t[i]>='A'&&t[i]<='Z'))
n[i]=t[i];
}
for(i=0;i<d;i++)
{
if((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
br++;
if(br%4==0 && br>0)
{
while((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
i++;
}
while(!((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z')))
{
i++;
}
}
else
while((n[i]>='a' && n[i]<='z') || (n[i]>='A'&&n[i]<='Z'))
{
printf("%c",n[i]);
i++;
}
}
if(i<d)
printf("%c",n[i]);
}
return 0;
}
|
|
|
[Vrh] |
|
frutabella Forumaš(ica)
Pridružen/a: 09. 10. 2010. (16:35:36) Postovi: (24E)16
|
|
[Vrh] |
|
Countess Forumaš(ica)
Pridružen/a: 22. 07. 2013. (13:34:10) Postovi: (13)16
Spol:
|
Postano: 22:31 sub, 19. 10. 2013 Naslov: |
|
|
Malo mi je neugodno za ovako jednostavan zadatak tražiti pomoć, ali ili ga ne razumijem ili radim neku grešku koju naprosto ne primjećujem.
Zadatak:
[code:1]Napišite program koji učitava 8 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smije ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.[/code:1]
[code:1]#include <stdio.h>
int main()
{
int i, x, temp = 0;
for ( i = 1; i <= 8; i++ )
{
scanf("%d", &x);
if ( (x != 0) && (temp != 0) && (x % temp == 0) )
printf("%d ", x);
temp = x;
}
return 0;
}
[/code:1]
Verifikator kaže da je netočno za input:
[code:1]2 3 9 1 0 4 1 6[/code:1]
za što meni ispisuje
[code:1]9 6[/code:1]
i da je netočno za
[code:1]10 4 4 10 8 1 1 9[/code:1]
za što meni ispisuje
[code:1]4 1 9[/code:1]
Može neki hint, pomoć, prosvjetljenje?
Malo mi je neugodno za ovako jednostavan zadatak tražiti pomoć, ali ili ga ne razumijem ili radim neku grešku koju naprosto ne primjećujem.
Zadatak:
Kod: | Napišite program koji učitava 8 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smije ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati. |
Kod: | #include <stdio.h>
int main()
{
int i, x, temp = 0;
for ( i = 1; i <= 8; i++ )
{
scanf("%d", &x);
if ( (x != 0) && (temp != 0) && (x % temp == 0) )
printf("%d ", x);
temp = x;
}
return 0;
}
|
Verifikator kaže da je netočno za input:
za što meni ispisuje
i da je netočno za
za što meni ispisuje
Može neki hint, pomoć, prosvjetljenje?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 22:55 sub, 19. 10. 2013 Naslov: |
|
|
Pohvale na kvalitetno postavljenom pitanju. :)
S nulom se ne moze dijeliti (u realnoj aritmetici), ali nula sama je djeljiva sa svim cijelim brojevima (osim sa samom nulom, naravno).
Zasto drugi primjer nije prosao, ne znam. Je li to od programa koji je ovdje zalijepljen, ili je to od neke starije verzije?
Pohvale na kvalitetno postavljenom pitanju.
S nulom se ne moze dijeliti (u realnoj aritmetici), ali nula sama je djeljiva sa svim cijelim brojevima (osim sa samom nulom, naravno).
Zasto drugi primjer nije prosao, ne znam. Je li to od programa koji je ovdje zalijepljen, ili je to od neke starije verzije?
_________________ 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] |
|
Countess Forumaš(ica)
Pridružen/a: 22. 07. 2013. (13:34:10) Postovi: (13)16
Spol:
|
|
[Vrh] |
|
Arabella Forumaš(ica)
Pridružen/a: 11. 10. 2013. (12:52:41) Postovi: (10)16
Spol:
|
Postano: 23:38 sub, 19. 10. 2013 Naslov: |
|
|
Trebam pomoć oko dva zadatka iz 4. zadaće. Ne razumijem zašto kodovi ne prolaze.
[code:1]Zadatak 3:
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 17 imaju samo znamenke djeljive sa 5. 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 funkcija (int x) {
int t;
t=x;
while (t>0) {
if (t%17 != 5 && t%17!=0) return 0;
t/=17;
}
return 1;
}
int main () {
int a, b, i, min, max, nema=1;
scanf ("%d %d", &a, &b);
if (a<b) {
min=a;
max=b;
}
else {
min=b;
max=a;
}
for (i=min; i<=max; i++) {
if (funkcija(i)) {
printf ("%d ", i);
nema=0;
}
}
if (nema) printf ("Nema takvih brojeva.");
return 0;
}
[/code:1]
Ovo ne radi za 507 i 63, iako ja ne vidim zašto.
Zatim:
[code:1]Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajuć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 x) {
int i;
for (i=2; i<x; i++) {
if (x%i==0) return 0;
}
return 1;
}
int main () {
int n, i, sum=0, j, k, min, max;
scanf ("%d", &n);
if (n<(-22)) {
min=n;
max=-22;
}
else {
min=-22;
max=n;
}
for (i=min; i<=max; i++) {
if (i<0) k= -i;
else k=i;
if (k==1) sum+=k;
for (j=2; j<=k; j++) {
if (k%j==0 && prost(j)) sum+=j;
}
}
printf ("%d", sum);
return 0;
}[/code:1]
Ovaj ne radi za n=29 (opet ne razumijem zašto).
Trebam pomoć oko dva zadatka iz 4. zadaće. Ne razumijem zašto kodovi ne prolaze.
Kod: | Zadatak 3:
Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve koji se nalaze između a i b (uključivo i a i b), a u zapisu s bazom 17 imaju samo znamenke djeljive sa 5. 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 funkcija (int x) {
int t;
t=x;
while (t>0) {
if (t%17 != 5 && t%17!=0) return 0;
t/=17;
}
return 1;
}
int main () {
int a, b, i, min, max, nema=1;
scanf ("%d %d", &a, &b);
if (a<b) {
min=a;
max=b;
}
else {
min=b;
max=a;
}
for (i=min; i<=max; i++) {
if (funkcija(i)) {
printf ("%d ", i);
nema=0;
}
}
if (nema) printf ("Nema takvih brojeva.");
return 0;
}
|
Ovo ne radi za 507 i 63, iako ja ne vidim zašto.
Zatim:
Kod: | Zadatak 4:
Napišite program koji učitava cijeli broj n, te ispisuje sumu svih prostih djelitelja (uvažavajuć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 x) {
int i;
for (i=2; i<x; i++) {
if (x%i==0) return 0;
}
return 1;
}
int main () {
int n, i, sum=0, j, k, min, max;
scanf ("%d", &n);
if (n<(-22)) {
min=n;
max=-22;
}
else {
min=-22;
max=n;
}
for (i=min; i<=max; i++) {
if (i<0) k= -i;
else k=i;
if (k==1) sum+=k;
for (j=2; j<=k; j++) {
if (k%j==0 && prost(j)) sum+=j;
}
}
printf ("%d", sum);
return 0;
} |
Ovaj ne radi za n=29 (opet ne razumijem zašto).
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 2:33 ned, 20. 10. 2013 Naslov: |
|
|
Zad 3: Zar su 0 i 5 jedini brojevi djeljivi s 5 medju znamenkama u sustavu s bazom 17, tj. medju brojevima 0,1,...,16? :shock:
Zad 4:
1. Koji su prosti djelitelji broja 1?
2. Pise da treba uvazavati kratnost. To znaci da se broj 8 ta suma treba biti 2+2+2, a ne samo 2.
Pogledati po skripti. Postoji daleko bolji nacin, pogotovo kad se trazi uvazavanje kratnosti.
Zad 3: Zar su 0 i 5 jedini brojevi djeljivi s 5 medju znamenkama u sustavu s bazom 17, tj. medju brojevima 0,1,...,16?
Zad 4:
1. Koji su prosti djelitelji broja 1?
2. Pise da treba uvazavati kratnost. To znaci da se broj 8 ta suma treba biti 2+2+2, a ne samo 2.
Pogledati po skripti. Postoji daleko bolji nacin, pogotovo kad se trazi uvazavanje kratnosti.
_________________ 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] |
|
Arabella Forumaš(ica)
Pridružen/a: 11. 10. 2013. (12:52:41) Postovi: (10)16
Spol:
|
Postano: 7:39 ned, 20. 10. 2013 Naslov: |
|
|
[quote]Zad 3: Zar su 0 i 5 jedini brojevi djeljivi s 5 medju znamenkama u sustavu s bazom 17, tj. medju brojevima 0,1,...,16? :shock:[/quote]
:oops!:
[quote]Zad 4:
1. Koji su prosti djelitelji broja 1?
2. Pise da treba uvazavati kratnost. To znaci da se broj 8 ta suma treba biti 2+2+2, a ne samo 2.
Pogledati po skripti. Postoji daleko bolji nacin, pogotovo kad se trazi uvazavanje kratnosti.[/quote]
Ne znam kako sam smela s uma ovo da pise da treba uvazavati kratnost i ovo s 1 :shock:
Da, shvaćam sad što treba promijeniti... :facepalm:
Zahvaljujem!
Citat: | Zad 3: Zar su 0 i 5 jedini brojevi djeljivi s 5 medju znamenkama u sustavu s bazom 17, tj. medju brojevima 0,1,...,16? |
Citat: | Zad 4:
1. Koji su prosti djelitelji broja 1?
2. Pise da treba uvazavati kratnost. To znaci da se broj 8 ta suma treba biti 2+2+2, a ne samo 2.
Pogledati po skripti. Postoji daleko bolji nacin, pogotovo kad se trazi uvazavanje kratnosti. |
Ne znam kako sam smela s uma ovo da pise da treba uvazavati kratnost i ovo s 1
Da, shvaćam sad što treba promijeniti...
Zahvaljujem!
|
|
[Vrh] |
|
četiri Forumaš(ica)
Pridružen/a: 11. 09. 2012. (20:20:15) Postovi: (1B)16
Lokacija: Zagreb
|
Postano: 15:57 čet, 31. 10. 2013 Naslov: |
|
|
zadatak 4. od 3. zadaće
[quote]Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.[/quote]
moje rješenje...
[code:1]#include <stdio.h>
int main (void)
{
int x, i, d=0;
for(i=1 ; i<=7 ; i++)
{
scanf("%d", &x);
if ((d!=0) && (x%d==0))
printf("%d, ", x);
d=x;
}
return 0;
}[/code:1]
netočan zadatak jer... netočno za input: 8 1 2 9 8 10 0
meni zadatak za taj upit ispicuje 2 i 0 kak bi i trebalo.
može pomoć? što je krivo?!
zadatak 4. od 3. zadaće
Citat: | Napišite program koji učitava 7 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati. |
moje rješenje...
Kod: | #include <stdio.h>
int main (void)
{
int x, i, d=0;
for(i=1 ; i<=7 ; i++)
{
scanf("%d", &x);
if ((d!=0) && (x%d==0))
printf("%d, ", x);
d=x;
}
return 0;
} |
netočan zadatak jer... netočno za input: 8 1 2 9 8 10 0
meni zadatak za taj upit ispicuje 2 i 0 kak bi i trebalo.
može pomoć? što je krivo?!
|
|
[Vrh] |
|
hendrix Forumaš(ica)
Pridružen/a: 03. 09. 2012. (15:59:06) Postovi: (92)16
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
četiri Forumaš(ica)
Pridružen/a: 11. 09. 2012. (20:20:15) Postovi: (1B)16
Lokacija: Zagreb
|
Postano: 22:20 čet, 31. 10. 2013 Naslov: |
|
|
joooj, ja sam cijelo vrijeme krivo čito zadatak, da ispisane brojeve treba odvojit zarezima, a ne razmacima, bio je problem u tome, hvala puno
joooj, ja sam cijelo vrijeme krivo čito zadatak, da ispisane brojeve treba odvojit zarezima, a ne razmacima, bio je problem u tome, hvala puno
|
|
[Vrh] |
|
|