ZADACI ZA PROGRAMIRANJE I MOGUĆE JE PONAVLJANJE ZADATAKA MOGUĆE SU GREŠKE U NEKIM OD ZADATAKA PROBNA VERZIJA NEUREĐENA VERZIJA ZADACI NISU POREDANI PO TEŽINI
Upisuje u txt datoteku koja je navedena preko komandne linije sortirane artikle
#include #include typedef struct{ char naziv[21]; double kol,cijena; }ARTIKAL; void citaj(ARTIKAL*); void pisi_u_fajl(ARTIKAL*,FILE*); void ispis_u_fajl(ARTIKAL*,int,FILE*); int main(int argc,char*argv[]) {ARTIKAL*niz; FILE*fp; int i,n; do{ printf("unesite broj artikala"); scanf("%d",&n);}while(n<1); niz=(ARTIKAL*)malloc(n*sizeof(ARTIKAL)); for(i=0;inaziv); printf("unesi kolicinu"); scanf("%lf",&a->kol); printf("unesi cijenu"); scanf("%lf",&a->cijena); } void pisi_u_fajl(ARTIKAL*a,FILE*fp) { fprintf(fp," %-20s %6.2lf %6.2lf %6.2lf",a->naziv,a->kol,a->cijena,a>cijena*a->kol); } void ispis_u_fajl(ARTIKAL*a,int n,FILE*fp)
{ int i; fprintf(fp,"=== ==================== ====== ====== ======\n"); fprintf(fp,"RB. NAZIV KOL. CIJENA UKUPNO\n"); fprintf(fp,"=== ==================== ====== ====== ======\n"); for(i=0;i
Program za transponovanje matrice #include #define MAX 100 int main() { int mat[MAX][MAX], n,i,j,pom; do { printf("n="); scanf("%d", &n); } while (n < 1 || n > MAX); for (i = 0; i < n; ++i) for (j=0; j < n; ++j) { printf("mat[%d][%d]=", i, j); scanf("%d", &mat[i][j]); } for ( i = 0; i < n; i++) for ( j = i + 1; j < n; j++) { pom = mat[i][j]; mat[i][j] = mat[j][i]; mat[j][i] = pom; } printf("Transponovana matrica:\n");
for (i = 0; i < n; ++i, printf("\n")) for ( j = 0; j < n; ++j) printf("%4d ", mat[i][j]); system("pause"); return 0; }
Provjerava da li string pocinje podstringom #include #include int strstart(char *x, char *y); int main() { char x[20],y[20]; printf("unesi string x:\n"); gets(x); printf("unesi string y:\n"); gets(y); if (strstart(x,y)==0) printf("string u stringu"); else printf("string nije u stringu"); return 0; } int strstart(char *x, char *y) { int p=0,n,j=0,k,m,t=0; while(x[j]!='\0') { j++; } k=0; while(y[k]!='\0') { k++; } m=(j
return 1; return (k); }
Provjera da li string zavrsava podstringom #include #include int strend(char*a,char*c); int main() {char a[20],b[20]; printf("unesi string a\n"); gets(a); printf("umesi string b\n"); gets(b); printf("Podstring se %s ", (strend(a,b)) ? "sadrzava" : "ne sadrzava"); return 0; } int strend(char*a,char*c) { int r=0,j,i,k,n; for(i=0;a[i]!='\0';i++); for(j=0;c[j]!='\0';j++); k=(j0&&i>0) if(a[i-1]==c[j-1]) {r++; j--;i--;} if(r==k) return 1; else return -1; }
Program za unos/sortiranje I ispis studenata po kriterijumu da li su polozili ispit li nisu #include #include typedef struct { int bod; char prezime[20],ime[20],index[10]; }STUDENT; void ucitaj(STUDENT*a)
{ printf("unesi printf("unesi printf("unesi printf("unesi }
ime studenta ");scanf("%s",a->ime); prezime studenta ");scanf("%s",a->prezime); broj indeksa");scanf("%s",a->index); broj bodova");scanf("%d",&a->bod);
void sortiraj(STUDENT*a,int n) { int j,i; for(i=0;i=50) {if(l==0) {printf("POLOZILI\n"); printf("-------------------------------------\n"); printf("Rb. Indeks Prezime Ime Bod\n"); printf("--- ------- ---------- ---------- ---\n"); l++;} printf("%2d. %-7s %-10s %-10s %3d\n",i+1,a[i].index,a[i].prezime,a[i].ime,a[i].bod);} printf("=====================================\n"); l=0; for(k=0,i=0;i
printf("=====================================\n"); } int main() { int i,n; STUDENT*a; printf("koliko je studenata bilo na ispitu "); scanf("%d",&n); printf("\n"); a=(STUDENT*)malloc(n*sizeof(STUDENT)); for(i=0;i
Izbacivanje podstringa iz stringa #include #include void izbaci(char *s1, char *s2) { int i = 0, j, k; while (s1[i]) { for (j = 0; s2[j] && s2[j] == s1[i + j]; j++); if (!s2[j]) { for (k = i; s1[k + j]; k++) s1[k] = s1[k + j]; s1[k] = 0; } else i++; } } int main() {
char rijec1[101], rijec2[101]; printf("Unesite dvije rijeci: "); scanf("%s %s", rijec1, rijec2); izbaci(rijec1, rijec2); printf("Rezultat: '%s'", rijec1); system("pause"); return 0; }
Ispis samoglasnika redom #include #include int main() {char s[20]; int i; printf("unesi string"); gets(s); for(i=0;s[i]!='\0';i++) if(s[i]=='A'||s[i]=='a'||s[i]=='E'||s[i]=='e'||s[i]=='I'||s[i]=='i'||s[i]=='O'|| s[i]=='o'||s[i]=='U'||s[i]=='u') printf("%c",s[i]=(s[i]<90)?s[i]+=32:s[i]); return 0; }
Ispis parnih brojeva vecih od aritmeticke sredine #include #include int main() { int niz[100],n,i,j,t=0; double as; do { printf("n"); scanf("%d",&n); } while(n<1||n>100); for(i=0; i
as=t/(double)n; for(i=0; ias&&niz[i]%2==0) printf("%d ",niz[i]); } printf("as=%.2lf\n ",as); return 0; }
Ispis elemenata matrice vecih od najveceg elementa sa diagonale #include #include int main() { int mat[100][100],niz[100]= {0},n,i,j,max=0; do { printf("n="); scanf("%d",&n); } while(n<1||n>100); for(i=0; i mat[max][max]) max = i; } for(i=0; imat[max][max]) printf("%d",mat[i][j]); return 0; }
Ispis elemenata matrice opadajuce #include #define MAX 100 int main() { int red[2*MAX],mat[MAX][MAX],i,j,p,n; printf ("Unesite dimenziju kvadratne matrice "); scanf ("%d",&n); for (i=0;i
Određivanje faktoriala nekog broja pomocu nizova
#include #include #define MAX 1000 int main() { int f[MAX]= {1},i,j,n,prenos,pom; do { printf("uneiste broj"); scanf("%d",&n); } while(n<1||n>MAX); for (i=2; i<=n; i++) for(j=0,prenos=0; j= 0; j--) printf("%d", f[j]); return 0; }
Ispis elemenata na glavnoj I sporednoj dijagonali matrice #include #include int main() { int mat[100][100],n,i,j; do { printf("n=");scanf("%d",&n); }while(n<1||n>100); for(i=0;i
printf("%d ",mat[i][i]); printf("\n"); printf("elementi na sporednoj diagonali\n"); for(i=0,j=n-1;i
Unos tacaka,formiranje duzi,ispis najduze I najkrace duzi #include #include #include typedef struct { int x,y; char c; }TACKA; typedef struct { TACKA T1,T2; double l; }DUZ; void citaj(TACKA*a) { printf("unesi naziv tacke "); scanf("%c",&a->c); printf("unesi x i y");scanf("%d %d",&a->x,&a->y); } void pisiT(TACKA a) { printf("%c(%d,%d)",a.c,a.x,a.y); } DUZ kreiraj(TACKA a,TACKA b) { DUZ d; d.T1=a; d.T2=b; return (d); } void pisiD(DUZ d) { pisiT(d.T1);printf("-");pisiT(d.T2); //printf("%c(%d,%d)-%c(%d,&d)",d.T1.c,d.T1.x,d.T1.y,d.T2.c,d.T2.x,d.T2.y);
} double duzina(DUZ d) { double l; l=sqrt(pow((d.T1.x-d.T2.x),2)+pow((d.T1.y-d.T2.y),2)); return(l); } int main() { int n,i,j,h=0; TACKA*a; DUZ*d; printf("koliko tacaka unosite: "); do {scanf("%d",&n); }while(n<0); a=(TACKA*)malloc(n*sizeof(TACKA)); d=(DUZ*)malloc(n*sizeof(DUZ)); //l=(double*)malloc(n*sizeof(double)); for(i=0;i
Konkatencija dinamickih stringova #include #include char* konkatenacija(char *, char *); int main()
{ char s[100],m[100],*r; printf("unesite prvi string\n"); gets(s); printf("unesite drugi string\n"); gets(m); r=konkatenacija(s,m); printf("%s",r); return 0; } char* konkatenacija(char*s,char*m) {int i,j,l; char*r; for(i=0;s[i]!='\0';i++); for(j=0;m[j]!='\0';j++); r=(char*)calloc(i+j-1,sizeof(char)); for(j=0;j
Dekrementacija velikog broja #include #define MAX 100 typedef struct { int niz[MAX]; int brojcif; } VeBroj; void citaj(VeBroj *); void dekrement(VeBroj *); void ispis(VeBroj); int main() { VeBroj broj; do { printf("Koliko cifara ima broj?"); scanf("%d", &broj.brojcif); }
while (broj.brojcif<1 || broj.brojcif>MAX); citaj(&broj); dekrement(&broj); return 0; } void citaj(VeBroj *broj) { int i; printf("Unesite cifre broja :\n"); for(i=0; iniz[i]=0; for(i=0; ibrojcif; i++) { //printf("%d.cifra:", i+1); scanf("%s", &broj->niz[i]); } } void ispis(VeBroj broj) { int i; printf("Dekrementovan broj: "); for(i=MAX-1; broj.niz[i]==0; i--); for(i=broj.brojcif-1; i>=0; i--) printf("%d", broj.niz[i]); } void dekrement(VeBroj *broj) {int i; if(broj->niz[broj->brojcif-1]==0) broj->niz[broj->brojcif]-=1; for(i=broj->brojcif-1;i>=0;i--) broj->niz[i]-=1; }
Pronalazi cijele I decimalne dijelove matrice #include #include void citaj(float mat[10][10],int*n); void pisi(float mat[10][10],int n,char c); int main() { float mat[10][10]; int n;
char c; do { printf("unesi dimenziju matrice"); scanf("%d",&n); }while(n<2||n>10); citaj(mat,&n); printf("unesi c ili d"); scanf("%c",&c); pisi(mat,n,c); return 0; } void citaj(float mat[10][10],int*n) { int i,j; for(i=0;i<*n;i++) for(j=0;j<*n;j++) { printf("unesi mat[%d][%d]=",i,j); scanf("%f",&mat[i][j]); } return(mat); } void pisi(float mat[10][10],int n,char c) {float k[n][n]; int i,j; if(c=='C') for(i=0;i
}
Program koji ucitava/ispisuje/sortira opadajuce po prosjeku student #include #include #include typedef struct { char prezime[15]; char ime[10]; double procjena; } STUDENT; STUDENT citaj(); void pisi(STUDENT); void sort(STUDENT *,int); void ispis(STUDENT *,int); main() { int n,i; STUDENT niz[15]; printf("koliko ima studenata?"); scanf("%d",&n); for(i=0;i
{ printf("%s\t %s\t %lf\n",x.prezime,x.ime,x.procjena); } void sort(STUDENT *niz, int n) { int i,j,k,w=0,h,t; STUDENT pom; for(i=0;iniz[j+1].prezime[t]) { pom=niz[j+1]; niz[j+1]=niz[j]; niz[j]=pom; break; } } else if(kniz[j+1].prezime[t]) { pom=niz[j+1]; niz[j+1]=niz[j]; niz[j]=pom; break; } }
else { for(t=0;tniz[j+1].prezime[t]) { pom=niz[j+1]; niz[j+1]=niz[j]; niz[j]=pom; w=1; break; } if(niz[j].prezime[t]
Broj I ispis pozitivnih brojeva
#include #include int main() { int niz[100],n,i,p=0,j; do { printf("unesite broj n"); scanf("%d",&n); }while(n<1 ||n>100); for(i=0;i0) { printf("%d ",niz[i]); p++; } printf("\n"); printf("broj poz brojeva\n %d",p); return 0; }
Broj pojavljivanja cifara #include #include int main() { int i,broj; int cifre[]={0,0,0,0,0,0,0,0,0,0}; printf("unesi broj"); scanf("%d",&broj); while(broj){ cifre[broj%10]++; broj/=10; } for(i=0;i<10;i++) if(cifre[i]!=0) printf("Cifra %d se ponavlja %d puta\n",i,cifre[i]); return 0; }
Broj pojavljivanja podstringa u stringu iterativno #include #include int brojpodstringova(char*,char*); int main() {char s1[20],s2[20]; int t; printf("unesi string\n"); gets(s1); printf("unesi podstring"); gets(s2); printf("%d",brojapodstringa(s1,s2)); return 0; } int brojpodstringa(char*s1,char*s2) {int i,j,k,r,t,s=0; for(i=0;s2[i]!='\0';i++); for(j=0;s1[j]!='\0';j++) if(s1[j]==s2[0]) {r=j; for(t=0,k=0;t
Sabiranje I mnozenje velikih brojeva #include #include typedef struct { int niz[50]; } BROJ; void citaj(BROJ *); void zbir(BROJ, BROJ, BROJ *); void ispis(BROJ); void proizvod(BROJ, BROJ, BROJ *); int main()
{ BROJ a, b, zb, pr; citaj(&a); citaj(&b); printf("\n"); zbir(a,b,&zb); proizvod(a,b,&pr); printf("\n"); ispis(a); printf("+"); ispis(b); printf("="); ispis(zb); printf("\n"); ispis(a); printf("*"); ispis(b); printf("="); ispis(pr); return 0; } void citaj(BROJ *b) { char s[51]; int br=0, i; printf("Unesite broj: "); scanf("%s",s); while(s[br]) br++; for(i=0; i<50; i++) { br--; if(br>=0) b->niz[i]=s[br]-'0'; else b->niz[i]=0; } } void zbir(BROJ a, BROJ b, BROJ *zb) { int i, pom, prenos=0; for(i=0; i<50; i++) { pom=a.niz[i]+b.niz[i]+prenos; zb->niz[i]=pom%10; prenos=pom/10;
} } void ispis(BROJ b) { int i; for(i=50-1; i>0 && b.niz[i]==0; i--); for( ; i>=0 ; i--) printf("%d",b.niz[i]); } void proizvod(BROJ a, BROJ b, BROJ *pr) { int i, j; for(i=0; i<50; i++) pr->niz[i]=0; for(i=0; i<50; i++) { for(j=0; j < 50 - i; j++) { pr->niz[i + j] += a.niz[i] * b.niz[j]; if (i + j + 1 < 50) pr->niz[i + j + 1] += pr->niz[i + j] / 10; pr->niz[i + j] %= 10; } } }
Program za unos/ispis/sortiranje artikala po ukupnoj cijeni #include #include typedef struct { char naziv[16]; double kol,cijena; }ARTIKAL; void citaj(ARTIKAL *); void sortiraj(ARTIKAL *, int); void pisi(ARTIKAL *); void ispis(ARTIKAL *, int); int main() { int i,n; ARTIKAL *niz; do {
printf("Koliko artikala unosite"); scanf("%d",&n); }while(n<1); niz=(ARTIKAL*)malloc(n*sizeof(ARTIKAL)); for(i=0;inaziv); printf(" Kolicina: "); scanf("%lf", &art->kol); printf(" Cijena: "); scanf("%lf", &art->cijena); } void sortiraj(ARTIKAL *niz,int n) { int i,j; ARTIKAL pom; for(i=0;inaziv, art->kol, art->cijena, art->kol * art->cijena); } void ispis(ARTIKAL *niz,int n) { int i; printf("=== ==================== ====== ====== ======\n"); printf("RB. NAZIV KOL. CIJENA UKUPNO\n"); printf("=== ==================== ====== ====== ======\n");
for (i = 0; i < n; i++) { printf("%2d. ", i + 1); pisi(niz + i); printf("\n"); } printf("=== ==================== ====== ====== ======"); }
Program za unos/ispis/sortiranje po datumu rodjenja osoba #include #include typedef struct datum { int dan,mjesec,godina; }DATUM; typedef struct { DATUM rodj; char ime[20],prezime[20]; }OSOBA; void citaj(OSOBA *); void sort(OSOBA *, int); void ispis(OSOBA *, int); int main() { int n,i; OSOBA* a; printf("koliko osoba unosite "); scanf("%d",&n); a=(OSOBA*)malloc(n*sizeof(OSOBA)); for(i=0;i
void citaj(OSOBA *a) { printf("unesi ime");scanf("%s",a->ime); printf("unesi prezime");scanf("%s",a->prezime); printf("unesi datum rodjja");scanf("%d %d %d",&a->rodj.dan,&a>rodj.mjesec,&a->rodj.godina); } void sort(OSOBA *osobe, int n) {int i,j; for(i=0;iosobe[j].rodj.godina || (osobe[i].rodj.godina == osobe[j].rodj.godina && osobe[i].rodj.mjesec>osobe[j].rodj.mjesec) || (osobe[i].rodj.godina == osobe[j].rodj.godina && osobe[i].rodj.mjesec == osobe[j].rodj.mjesec && osobe[i].rodj.dan>osobe[j].rodj.dan)) {OSOBA pom=osobe[i]; osobe[i]=osobe[j]; osobe[j]=pom;} } void ispis(OSOBA *a, int n) { int i; printf("=== =============== =============== ===========\n"); printf("RB. IME PREZIME DATUM\n"); printf("=== =============== =============== ===========\n"); for(i=0;i
Program za mnozenje I sabiranje dva polinoma #include #include #include typedef struct p { int a[100],n;
} POLINOM; POLINOM a,b; POLINOM citaj() { int i,j=0; do { printf("Stepen polinoma A je:"); scanf("%d",&a.n); } while((a.n<0) || (a.n>=100)); for(i=a.n; i>=0; i--) { printf("unesite koeficijent %c:",65+j); scanf("%d",&a.a[i]); j++; } j=0; do { printf("Stepen polinoma B je:"); scanf("%d",&b.n); } while((b.n<0) || (b.n>=100)); for(i=b.n; i>=0; i--) { printf("unesite koeficijent %c:",65+j); scanf("%d",&b.a[i]); j++; } } POLINOM saberi(POLINOM a,POLINOM b) { POLINOM c; int i; if(a.n >= b.n) { c.n = a.n; for(i=0; i<=b.n; i++) c.a[i] = a.a[i] + b.a[i]; for(i=b.n+1; i<=a.n; i++) c.a[i] = a.a[i]; } else { c.n = b.n;
for(i=0; i<=a.n; i++) c.a[i]=a.a[i]+b.a[i]; for(i=a.n+1; i<=b.n; i++) c.a[i] = b.a[i]; } printf("zbir polinoma:\n "); return c; } POLINOM pomnozi(POLINOM d,POLINOM e,POLINOM *f) { int i,j; for(i=0; i<=d.n; i++) for(j=0; j<=e.n; j++) f->a[i+j]=0; for(i=0; i<=d.n; i++) for(j=0; j<=e.n; j++) f->a[i+j]+=(d.a[i]*e.a[j]); f->n=d.n+e.n; printf("\nproizvod polinoma: "); } void ispis(POLINOM c) { int i,z; for(i=c.n; i>=0; i--) { z=(c.a[i]>0)?43:32; if(i==c.n) z=32; if (c.a[i]==0) printf(""); if (i==0) printf("%c%d",z,c.a[i]); if (i==1) printf("%c%dc",z,c.a[i]); if (c.a[i]==1) printf("%cc^%d",z,i); if(i!=0&&i!=1&&c.a[i]!=0&&c.a[i]!=1) printf("%c%dc^%d",z,c.a[i],i); } } main() { POLINOM mno,sab; citaj(); sab=saberi(a,b); ispis(sab);
pomnozi(a,b,&mno); printf("\n"); ispis(mno); printf("\n"); system("pause"); }
Program za mnozenje matrica proizvoljnih dimenzija #include int i,j,k; void main() { int a[10][10],b[10][10],c[10][10],m,n,p,q; void mnozi(int x[10][10],int y[10][10],int z[10][10],int m,int n,int p,int q); void ucitaj(int x[10][10],int m,int n); void ispisi(int x[10][10], int m,int n); printf("Unesite velicinu A Matrice (Red i kol): \n"); scanf("%d%d",&m,&n); printf("Unesite velicinu B Matrice (Red i kol): \n"); scanf("%d%d",&p,&q); if(n!=p) printf("mnozenje nije moguce\n unesite nove velicine\n"); else { ucitaj(a,m,n); ucitaj(b,m,n); mnozi(a,b,c,m,n,p,q); printf("A matrica je :\n"); ispisi(a,m,n); printf("B matrica je :\n"); ispisi(b,m,n); printf("C matrica je :\n"); ispisi(c,m,n); } } void mnozi(int x[10][10],int y[10][10],int z[10][10],int m,int n,int p,int q) { for (i=0; i
for(j=0; j
Izbacuje znak iz stringa #include #include void izbaci(char*s,char *p); int main() {char s[100],p[10],c; printf("unesite neki string\n"); gets(s); printf("Unesite znak\n"); //c=getchar(); gets(p); izbaci(s,p); printf("%s",s);
return 0; } void izbaci(char*s,char* p) {int l,i=0,j=0,k; char c; while(s[i]!='\0') { i++; j++; } for(l=0;p[l]!='\0';l++) {c=p[l]; for(i=0;i
Unos rijeci ispis te rijeci satrovacki #include #include void satrovacki(char*s); int main() { char k,s[20],r[20]; scanf("%[^\n]s",s); satrovacki(s); return 0; } void satrovacki(char*s) {int a,i=0,j,p=0,w,t=0,l=0; char k,r[20]; for(i=0;s[i]!='\0';i++); for(j=0;j=1&&(s[j]=='i'||s[j]=='a'||s[j]=='e'||s[j]=='o'||s[j]=='u')) { l++; w=j; j+=1; for(;j
for(;t<=w;t++,p++) r[p]=s[t]; } r[p]='\0'; printf("%s",r); }
Unos n rijeci I ispis jedne pored druge #include #include typedef struct { char s[100]; }RIJEC; int main() { RIJEC *rijec; int n,i,j,k; printf("unesi broj n "); scanf("%d",&n); rijec=(char**)malloc(n*sizeof(char)); for(i=0;i
Duzina stringa rekurzijom #include #include double stepen(double x,int n) { if (n==0) return(1); else return (x*stepen(x,n-1)); }
int main() { double x; int n; printf("x="); scanf("%lf", &x); for ( n=0; n<5; n++) printf("%.2lf^%d=%.4lf\n", x,n,stepen(x,n)); return 0; }
Stepenovanje pomocu rekurzije #include #include double stepen(double x,int n) { if (n==0) return(1); else return (x*stepen(x,n-1)); } int main() { double x; int n; printf("x="); scanf("%lf", &x); for ( n=0; n<5; n++) printf("%.2lf^%d=%.4lf\n", x,n,stepen(x,n)); return 0; }
Program koji ispisuje samog sebe #include #include int main() {FILE*fp; char a; int q=0; fp=fopen("main.c","r"); while(q!=189)
{ a=getc(fp); q++; printf("%c",a); } fclose(fp); return 0; }
Rekurzivna provjera da li je broj prost ili slozen #include #include int prost(int br,int i); int main() {int n,pr; printf("unesi broj"); scanf("%d",&n); pr=prost(n,n/2); if(pr!=0) printf("broj je prost"); else printf("broj je slozen"); return 0; } int prost(int br,int i){ if(i==1){ return 1; }else{ if(br%i==0) return 0; else prost(br,i-1); } }
Rekurzivni pronalazak pozicije karaktera u stringu #include #include int chars(char*s,char c); int main()
{char s[10],c; printf("unesite string\n"); gets(s); printf("unesite znak\n"); c=getchar(); printf("pozicija je c[%d]",chars(s,c)); return 0; } int chars(char*s,char c) {static i; if(*s=='\0') return NULL; if(*s==c) return i; else { i++; return (chars(s+1,c)); } }
Rekurzivna provjera da li je string palindron #include #include int clan(int n); int main() {int n; printf("Unesi clan"); scanf("%d",&n); printf("%d",clan(n)); return 0; } int clan(int n) { if (n==1) return 1; if(n==2) return 2; if (n==3) return 3; else return (clan(n-1)+clan(n-2)+clan(n-3));
}
Rekurzivni pronalazak n-tog clana niza “Qn=Qn-1+Qn-2+Qn-3” #include #include int clan(int n); int main() {int n; printf("Unesi clan"); scanf("%d",&n); printf("%d",clan(n)); return 0; } int clan(int n) { if (n==1) return 1; if(n==2) return 2; if (n==3) return 3; else return (clan(n-1)+clan(n-2)+clan(n-3)); }
Rekurzivno mozenje cifara #include #include int pro(int a,int b); int main() {int a,b; printf("unesite dva broja\n"); scanf("%d %d",&a,&b); printf("proizvod je %d",pro(a,b)); return 0; } int pro(int a,int b) {static int p; if((a==0)||(b==0)) return p;
else { p+=a; return pro(a,b-1); } }
Rekurzivna suma cifara #include #include unsigned suma(unsigned n); int main() { unsigned int n; printf("unesi broj n"); scanf("%u",&n); printf("suma cifara broja %u je%u",n,suma(n)); return 0; } unsigned suma(unsigned n) { static unsigned s; if(n) {s+=n%10; suma(n/10);} else return s; }
Program koji pronalazi najduzu seriju pozitivnih I parnih brojeva u nizu #include #include int paran(int x) { return (x % 2 == 0); } int pozitivan(int x) { return x > 0; } void serija(int *niz, int n, int (*s)(int), int **pocetak, int *duzina); int main() {
int*niz,n,d,**pocetak,l,i; printf("Koliko brojeva unosite"); scanf("%d",&n); niz=(int*)malloc(n*sizeof(int)); for(i=0; i *duzina) { *duzina= ts; *(pocetak)=&(niz[i-ts+1]); } } }
Program koji imitira rad funkcije printf #include #include #include #include #include
char * formiraj(char *format, ...); char * fptoa(float n,char *s,int izaz);
int main() { char *s; s = formiraj("Omiljeni predmet mu je matematika,%lf.",5.23); printf("%s", s); free(s); return 0; } char * formiraj(char *format, ...) { char *res = (char *)calloc(1, 1), val_int[12], *val_str, *pos_int, *pos_str,*val_char[1],*pos_char,val_float[32],*pos_float,val_double[64],*pos_ double; val_char[1]='\0'; va_list args; va_start(args, format); do { pos_int = strstr(format, "%d"); pos_str = strstr(format, "%s"); pos_char= strstr(format, "%c"); pos_float=strstr(format, "%f"); pos_double=strstr(format,"%lf"); if (pos_int /*&& (!pos_str || pos_int < pos_str)*/) { itoa(va_arg(args, int), val_int, 10); // nestandardna f-ja res = (char *)realloc(res, strlen(res) + (pos_int - format) + strlen(val_int) + 1); strncat(res, format, pos_int - format); strcat(res, val_int); format = pos_int + 2; } else if (pos_str /*&& (!pos_int || pos_str < pos_int)*/) { val_str = va_arg(args, char *); res = (char *)realloc(res, strlen(res) + (pos_str - format) + strlen(val_str) + 1); strncat(res, format, pos_str - format); strcat(res, val_str); format = pos_str + 2;} else if (pos_char /*&& (!pos_int || pos_char < pos_int)*/) { val_char[0] = va_arg(args,int ); res = (char *)realloc(res, strlen(res) + (pos_char - format) + strlen(val_char)+1); strncat(res, format, pos_char - format); strcat(res, val_char); format = pos_char + 2; }
else if (pos_float /*&& (!pos_str || pos_int < pos_str)*/) { fptoa((float)va_arg(args, double), val_float, 6); // nestandardna f-ja res = (char *)realloc(res, strlen(res) + (pos_float - format) + strlen(val_float) + 1); strncat(res, format, pos_float - format); strcat(res, val_float); format = pos_float + 2; } else if (pos_double /*&& (!pos_str || pos_int < pos_str)*/) { fptoa(va_arg(args, double), val_double, 6); // nestandardna f-ja res = (char *)realloc(res, strlen(res) + (pos_double - format) + strlen(val_double) + 1); strncat(res, format, pos_double - format); strcat(res, val_double); format = pos_double + 3; } } while (pos_int || pos_str||pos_char||pos_float||pos_double); va_end(args); res = (char *)realloc(res, strlen(res) + strlen(format) + 1); strcat(res, format); return res; } char*fptoa(float n,char*s,int izaz) {char *p[100]; p[0]='.'; int dec; float frac1; int frac2; dec=(int)n; frac1=n-dec; frac2=frac1*pow(10,izaz); itoa(dec,s,10); strcat(s,"."); itoa(frac2,p,10); strcat(s,p); return s; }
Program za pronalazak broja podstringova pomocu komandne linije #include #include #include
int brojac(char*,char*); int main(int n,char*s1[]) { s1[5]=(s1[5])?s1[5]:""; if((strcmp(s1[1],"-p")==0)) { if (strcmp(s1[3],"-s")) { printf("Greska. Nije naveden string -s"); return 0; } if((strcmp(s1[5],"-n")==0)) { if((brojac(s1[4],s1[2]))>=(*s1[6]-'0')) { printf("String %s se nalazi u stringu %s barem %s put(a).",s1[2],s1[4],s1[6]); return 0; } else { printf("String %s se ne nalazi u stringu %s barem %c put(a).",s1[2],s1[4],*s1[6]); return 0; } } else { if((brojac(s1[4],s1[2]))>=1) { printf("String %s se nalazi u stringu %s barem %c put(a).",s1[2],s1[4],'1'); return 0; } else { printf("String %s se ne nalazi u stringu %s barem %c put(a).",s1[2],s1[4],*s1[6]); return 0; } } } else if((strcmp(s1[1],"-s")==0)) { if (strcmp(s1[3],"-p"))
{ printf("Greska. Nije naveden string -p"); return 0; } if((strcmp(s1[5],"-n")==0)) { if((brojac(s1[2],s1[4]))>=(*s1[6]-'0')) { printf("String %s se nalazi u stringu %s barem %s put(a).",s1[2],s1[4],s1[6]); return 0; } else { printf("String %s se ne nalazi u stringu %s barem %c put(a).",s1[2],s1[4],*s1[6]); return 0; } } else { if((brojac(s1[2],s1[4]))>=1) { printf("String %s se nalazi u stringu %s barem %c put(a).",s1[2],s1[4],'1'); return 0; } else { printf("String %s se ne nalazi u stringu %s barem %c put(a).",s1[2],s1[4],*s1[6]); return 0; } } } if((strcmp(s1[1],"-p")==1)||(strcmp(s1[1],"-s")==1)) { printf("Greska. Nepoznata opcija %s",s1[1]); return 0; } return 0; } int brojac(char *s1,char *s2) { int i,j,k,r,t,s=0;
for(i=0; s2[i]!='\0'; i++); for(j=0; s1[j]!='\0'; j++) if(s1[j]==s2[0]) { r=j; for(t=0,k=0; t
Program za kopiranje txt datoteka #include #include void filecopy(FILE *fp, FILE *fi) { char c; while ((c = fgetc(fp)) != EOF) fputc(c,fi); } int main() { FILE*fp,*fi; fp=fopen("original.txt","w"); fi=fopen("kopija.txt","w"); fputs("String",fp); fclose(fp); fp=fopen("original.txt","r"); filecopy(fp,fi); fclose(fp); fclose(fi); return 0; }
Rekurzivni ispis cifara
#include #include unsigned ispis(unsigned n); int main() { unsigned n; printf("unesi broj n"); scanf("%u",&n); ispis(n); return 0; } unsigned ispis (unsigned n) { if(n!=0) { ispis(n/10); return printf("%u\n",n%10); } return 0; }
Program za sabiranje proizvoljnog broja brojeva pomocu Funkcije sa promjenjivim brojem argumenata #include #include int sum(int, ...); int main(void) { int n; scanf("%d",&n); printf("Suma 4, 20, 25 ai 30 = %d\n", sum(n, 4, 20, 25, 30) ); return 0; } int sum(int num_args, ...) { int val = 0; va_list ap; int i;
va_start(ap, num_args); for(i = 0; i < num_args; i++) { val += va_arg(ap, int); } va_end(ap); return val; }
Program koji pretvara realni broj u string #include #include #include #include char *ftoa(float n,char*s,int izaz); int main() {float c; printf("Unesite realni broj"); scanf("%f",&c); double d=1; char a[100]; printf("%s",ftoa(c,a,6)); return 0; } char*ftoa(float n,char*s,int izaz) {char p[100]; p[0]='.'; int dec; float frac1; int frac2; dec=(int)n; frac1=n-dec; frac2=frac1*pow(10,izaz); itoa(dec,s,10); strcat(s,"."); itoa(frac2,p,10); strcat(s,p); return s; }
Program ucitava broj n (unsigned) I ispisuje njegove cifre jednu ispod druge
#include #include unsigned ispis(unsigned n); int main() { unsigned n; printf("unesi broj n"); scanf("%u",&n); ispis(n); return 0; } unsigned ispis (unsigned n) { if(n!=0) { ispis(n/10); return printf("%u\n",n%10); } return 0; }
Napisati program koji ucitava N brojeva, a zatim ispisati koliko se puta svaki od njih ponavlja u tom nizu. #include #include main(){ int i,n,a[50],p[50]={0},j; printf("Unesi n: "); scanf("%d",&n); /*petlja za unos brojeva*/ for(i=0;i
printf("a[i]=%5d | p[i]=%5d\n",a[i],p[i]); system("pause"); }
Napisati program koji ucitava N brojeva, a zatim ispisuje sve one elemente niza koji se ne ponavljaju. #include #include main(){ int i,j,n,a[50],p[50]={0}; printf("Unesi n: "); scanf("%d",&n); /*petlja za unos brojeva*/ for(i=0;i
/*Napisati program koji ucitava matricu, a zatim ispisuje sve elemente matrice veæe od najveceg elementa na glavnoj dijagonali.*/ #include
#include main(){ int a[50][50],i,j,m,n,max,p=0; do{ printf("Unesi n i m: "); scanf("%d %d",&n,&m); }while(m<0||n<0); /*unos matrice*/ for(i=0;imax)max=a[i][i]; } printf("\nmax=%d\n",max); printf("----------------\n"); printf("Elementi veci od %d su:\n",max); /*uporedjivanje*/ for(i=0;imax&&i!=j){printf("%d\n",a[i][j]);p=1;} } } if(p==0)printf("\nNema elemenata vecih od max elem sa dijagonale\n"); system("pause");} /*Napisati program koji ucitava N brojeva, a zatim ispisuje sve one koji su pozitivni, kao i njnihov ukupan broj.*/ #include #include
main(){ int i,br=0,n,a[50]; printf("Unesi n: "); scanf("%d",&n); /*petlja za unos brojeva*/ for(i=0;i0){ printf("%d\n",a[i]); br++; } } printf("\n"); printf("Ima %d pozitivnih brojeva.\n",br); system("pause"); }
/*Napisati program koji ucitava N brojeva, a zatim ispisati sve parne brojeve iz tog niza koji su veci od aritmeticke sredine niza.*/ #include #include main(){ int i,j,n,a[50]; float as,s=0; printf("Unesi n: "); scanf("%d",&n); /*petlja za unos brojeva*/ for(i=0;i
as=s/n; printf("\nParni brojevi koji su veci od arit. sredine su:\n"); for(i=0;ias&&(a[i]%2==0))printf("%d\n",a[i]); } system("pause"); }
/*Ucitati matricu, pa ispisati sve elemente matrice poredane od najveceg do najmanjeg.*/ #include #include main(){ int a[50][50],i,j,n,m,k,l; printf("Unesi n i m: "); scanf("%d %d",&n,&m); for(i=0;i
system("pause"); } /*Ucitati matricu, pa ispisati sve elemente matrice iznad glavne dijagonale poredane od najveceg do najmanjeg.*/ #include #include main(){ int a[50][50],i,j,n,m,k,l,p,b[50]; printf("Unesi n i m: "); scanf("%d %d",&n,&m); for(i=0;i
/*Napisati program koji ucitava dvije kvadratne matrice, a zatim ispisuje njihov zbir.*/
#include #include main(){ int a[50][50],b[50][50],n,i,j; printf("Unesi n: "); scanf("%d",&n); /*unos prve matrice*/ printf("Unesi elemente matrice A:\n"); for(i=0;i
/*Napisati program koji ucitava naziv datoteke, pa otvara tu datoteku I odreduje broj pojava svakog slova engleskog alfabeta (A do Z) u njoj, a rezultat upisuje u datoteku SLOVA.DAT.*/ #include main(){ int b[26]={0},i; char naziv[20],c; FILE *dat; printf("Unesi naziv datoteke: ");
gets(naziv); if((dat=fopen(naziv,"r"))!=NULL){ while(!feof(dat)) { c=getc(dat); if(c>='A'&&c<='Z')b[c-'A']++; } fclose(dat); dat=fopen("Slova.dat","w"); for(i=0;i<26;i++)fprintf(dat,"%c %d\n",'A'+i,b[i]); fclose(dat); } }
/Program koji u dinam alocirani niz smjesta n cijelih br Sa standardnog ulaza i ispisuje najveci prost/ #include #include int prost(int b){ int d,bd=0; for(d=1;d<=b;d++) if(b%d==0)bd++; return(bd==2); } main(){ int n,*niz,i,ip=0,maxp=0; do{ printf("n= "); scanf("%d",&n); }while(n<1); niz=(int*)malloc(n*sizeof(int)); for(i=0;imaxp)
maxp=*(niz+i);} if(ip)printf("Najveci je ",maxp); else printf("nema prostih br"); system("pause"); }