Professional Documents
Culture Documents
Resenja
1)
#include<stdio.h>
int main(){
/*
pojavljivanju karaktera ", ', \ prilikom ispisa
prethodi \
\n oznacava prelaz u novi red
*/
printf("\"Zdravo /*\\\"\n");
return 0;
}
2)
#include <stdio.h>
int main(){
int x;
}
3)
#include <stdio.h>
int main(){
char slovo='A';
return 0;
}
4)
#include <stdio.h>
#include <math.h>
int main(){
/*
u zaglavlju math.h su deklarisane osnovne matematicke
funkcije i konstante; M_PI je konstanta koja
predstavlja broj Pi
*/
return 0;
}
10.
Napisati C program koji uitava sa standardnog ulaza datum u formatu
dd.mm.gggg i ispisuje na standardni izlaz redni broj tog dana u
godini.
Pretpostaviti da datumi su korektno uneti i da se odnose na vreme
posle
15.10.1582.
Na primer ulaz 01.01.2012. izlaz 1
ulaz 03.02.2011. izlaz 34
ulaz 01.03.2012. izlaz 61
ulaz 01.03.2011. izlaz 60
Resenja
#include <stdio.h>
int main(){
int n,i;
scanf("%d", &n);
if(n<0)
else{
for(i=1;i<=n;i++)
printf("\n");
return 0;
}
2)
#include <stdio.h>
int main(){
int n, i;
int f=1;
scanf("%d", &n);
if(n<0)
else{
f=f*i;
return 0;
3)
#include <stdio.h>
int main(){
int x, n;
int i;
int s;
if(n<0)
printf("Niste uneli dozvoljene vrednosti!\n");
else{
s=1;
for(i=1;i<=n;i++)
s=s*x;
return 0;
4)
#include <stdio.h>
int main(){
scanf("%d", &n);
if(n<0)
else{
while(n>0){
c=n%10;
s=s+c;
n=n/10;
}
printf("Zbir cifara je: %d\n", s);
return 0;
5)
#include <stdio.h>
int main () {
/* Unosimo n */
s = 0.0;
/* Unos elementa */
max = d;
/* Dodavanje na sumu */
s += d;
zato sto je operand s tipa double, koji je, opet, siri tip od int-a.
s /= n;
return 0;
6)
#include <stdio.h>
int main() {
while(a!=0)
{cifra=a%10;
a/=10;
return 0;
7)
#include <stdio.h>
int main ()
scanf("%ld",&a);
broja a */
a=a/10;
b=a%10;
a=a/10;
i=(b<c);
c=b;
}
(i==1)?
return 0;
8)
#include <stdio.h>
main()
long k1=0,k; /* suma n-tih stepena cifara broja x, pomocna kopija broja
x*/
printf("Unesite broj:");
scanf("%ld",&x);
k=x;
while(k!=0)
n++;
k/=10;
k=x;
while(k!=0)
k1+=stepen;
k/=10;
9)
#include <stdio.h>
main()
scanf("%d",&n);
for (k=1,s=0,m=1;m<=n;)
{ p=k;
while (k!=0)
{ s+=k%10;
k/=10;
k=p+1; s=0;
}
10)
#include <stdio.h>
main(){
int k,m1; /*redni broj dana, redni broj meseca koji prethode mesecu m*/
scanf("%d.%d.%d.",&d,&m,&g);
m1=1;k=0;
while (m>m1){
switch(m1){
k+=br;
m1++;
k+=d;
printf("%d",k);
11)
#include <stdio.h>
main()
while((c=getchar()) != EOF)
if(c=='(') br_otv++;
if (c== ')')
{ br_otv--;
if (br_otv<0)
12)
#include <stdio.h>
main()
int n; /* dimenzija */
do
scanf("%d", &n);
} while (n <1 || n > 50);
if(broj<0) continue;
******
* *
* *
* *
* *
******
*
**
***
****
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
#include <stdio.h>
int main(){
int n, c;
scanf("%d", &n);
if(n<10000 || n>99999){
return 0;
while(n>0){
c=n%10;
switch(c){
n=n/10;
return 0;
}
2)
#include <stdio.h>
int main(){
char c;
int broj_cifara=0;
c=getchar();
while(c!='*'){
broj_cifara++;
c=getchar();
return 0;
3)
#include <stdio.h>
int main(){
char c;
int broja=0;
int broje=0;
int broji=0;
int brojo=0;
int broju=0;
while((c=getchar())!=EOF){
switch(c){
case 'a': case 'A': broja++; break;
return 0;
4)
#include <stdio.h>
int main(void){
scanf("%d", &n);
/*
ideja je da kvadrat koji treba iscrtati posmatramo kao jednu matricu
sa n vrsta i n kolona; nase iscrtavanje ce se odvijati po
vrstama: prva i poslednja vrsta sastoje se samo od n zvezdica,
dok se vrste
if(v==1 || v==n){
for(k=1;k<=n;k++)
putchar('*');
putchar('\n');
else
putchar('*');
for(k=1;k<=n-2; k++)
putchar(' ');
putchar('*');
putchar('\n');
/* program zavrsava */
return 0;
5)
#include <stdio.h>
int main(){
int n, i, j;
scanf("%d", &n);
for(i=1;i<=n;i++){
for(j=1;j<=i;j++)
putchar('*');
printf("\n");
return 0;
}
6)
#include <stdio.h>
int main(){
int n, i, j;
scanf("%d", &n);
if(n<1){
return 0;
for(i=1;i<=2*n+1;i++){
for(j=1;j<=2*n+1;j++){
if(i==j || i+j==2*n+2)
putchar('*');
else
putchar(' ');
printf("\n");
return 0;
7)
#include <stdio.h>
main()
{ int a,b, max;
scanf("%d%d",&a,&b);
switch(a>b)
case 0:max=b;break;
case 1:max=a;
printf("\nmax=%d\n",max);
8)
#include <stdio.h>
main()
char x;
scanf("%c",&x);
switch(x)
case 'a': case 'e': case 'i': case 'o': case 'u':
9)
#include<stdio.h>
int main(){
int m,n,i,j,k;
printf("unesite n\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i-1;j++)
for(k=n-i+1;k>0;k--)
printf("* ");
for(m=1;m<=i;m++)
printf("* ");
printf("\n");
return 0;
10)
#include <stdio.h>
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=n;i>=1;i--)
if(i%2==0)
for(j=1;j<i*2;j++)
else printf("*");
else
for(j=1;j<i*2;j++) printf("*");
printf("\n");
return 0;
5.
a) Napisati funkciju kojom se elementi niza pomeraju za jednu
poziciju ulevo.
Na primer: ako je dat niz 1 2 3 4 5, posle pomeranja za jednu
poziciju ulevo niz je 2 3 4 5 1.
Na primer:
ako korisnik unese n=5, niz 3 4 5 6 7 i k=3 rezultat je 6 7 3 4 5
1)
#include<stdio.h>
#define MAX_DUZINA 50
int main(){
int f[MAX_DUZINA];
int n;
int i;
scanf("%d", &n);
if(n<=0){
return 0;
f[0]=1;
f[1]=1;
for(i=2;i<n;i++)
f[i]=f[i-1]+f[i-2];
printf("\n");
return 0;
2)
#include<stdio.h>
#define MAX_DUZINA 50
int main(){
int a[MAX_DUZINA];
int b[MAX_DUZINA];
int c[2*MAX_DUZINA];
int n;
int i;
/* ucitavamo broj elemenata niza */
scanf("%d", &n);
if(n<=0){
return 0;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
for(i=0;i<n;i++)
scanf("%d", &b[i]);
/* formiramo niza c */
for(i=0;i<n;i++){
c[2*i]=a[i];
c[2*i+1]=b[i];
/*
II nacin
for(i=0;i<2*n; i++)
if(i%2==0)
c[i]=a[i/2];
else
c[i]=b[i/2];
*/
printf("\n");
return 0;
3)
#include <stdio.h>
#define MAX_DUZINA 50
float asredina1(int a[], int n){
int s=0, i;
for(i=0;i<n;i++)
s+=a[i];
return (float)s/n;
int i;
*ps=0;
for(i=0;i<n;i++)
*ps+=a[i];
*ps=*ps/n;
int main(){
int a[MAX_DUZINA];
int n;
int i;
scanf("%d", &n);
if(n<=0){
return 0;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
as=asredina1(a,n);
asredina2(a,n, &as);
return 0;
4)
#include <stdio.h>
#define MAX_DUZINA 50
int prebroj1(int a[], int n){
int b=0, i;
for(i=1;i<n;i+=2)
if(a[i]%2==0)
b++;
return b;
int i;
*pb=0;
for(i=1;i<n;i+=2)
if(a[i]%2==0)
(*pb)++;
int main(){
int a[MAX_DUZINA];
int n;
int i;
scanf("%d", &n);
if(n<=0){
for(i=0;i<n;i++)
scanf("%d", &a[i]);
b=prebroj1(a,n);
prebroj2(a,n, &b);
return 0;
5)
#include <stdio.h>
#define MAX_DUZINA 50
int i, pom;
pom=a[0];
for(i=0;i<n-1;i++)
a[i]=a[i+1];
a[n-1]=pom;
int main(){
int a[MAX_DUZINA];
int n;
int i;
scanf("%d", &n);
if(n<=0){
return 0;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
/* ucitavamo broj k */
scanf("%d", &k);
for(i=1;i<=k;i++)
pomeri(a,n);
for(i=0;i<n;i++)
printf("\n");
return 0;
}
1. Napisati funkciju
Na primer:
za niz 2 3 4 5 i element 7 povratna vrednost funkcije je -1
za niz 9 4 1 8 i element 1 povratna vrednost funkcije je 2
2.
a) Napisati funkciju
int broj_pojavljivanja(int a[], int n, int x)
koja racuna broj pojavljivanja elementa x u nizu a duzine n.
3. Napisati funkciju
int issort(int a[], int n)
kojom se proverava da li je niz a duzine n sortiran u rastucem
poretku. Povratna vrednostu treba da bude 1 ako je niz rastuci ili 0
ako niz nije rastuci.
4. Napisati funkciju
void ubaci(int a[], int* pn, int x)
koja ubacuje element x u rastuci niz a tako da niz ostane u rastucem
poretku. Funkcija azurira dimenziju niza preka pokazivaca pn.
5. Napisati funkciju
void izbaci(int a[], int *pn, int x)
koja iz niza a izbacuje sva pojavljivanja elementa x. Funkcija
azurira dimenziju niza preko pokazivaca pn.
6. Napisati funkciju
void sort(int a[], int n, int poredak)
kojom se sortiraju elementi niza a u zadatom poretku. Poredak moze
biti rastuci (ako je treci argument jednak 1) ili opadajuci (ako je
treci argument jednak -1).
1)
#include <stdio.h>
int i;
for(i=0;i<n;i++){
if(a[i]==x)
return i;
return -1;
int i;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
int main(){
int a[20], n, x;
int poz;
scanf("%d", &n);
if(n>20){
return 0;
ucitaj_niz(a,n);
scanf("%d", &x);
poz=nalazi(a, n, x);
if(poz==-1)
else
return 0;
2)
#include <stdio.h>
int i;
int bp=0;
for(i=0;i<n;i++){
if(a[i]==x)
bp++;
return bp;
int i;
*bp=0;
for(i=0;i<n;i++){
if(a[i]==x)
(*bp)++;
int i;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
int main(){
int a[20], n, x;
int broj;
scanf("%d", &n);
if(n>20){
printf("Unos nije korektan: n<=20\n");
return 0;
ucitaj_niz(a,n);
scanf("%d", &x);
/* I nacin: */
broj=broj_pojavljivanja1(a, n, x);
/*II nacin: */
broj_pojavljivanja2(a,n,x, &broj);
return 0;
3)
#include <stdio.h>
int i;
for(i=0;i<n-1;i++){
if(a[i]>a[i+1])
return 0;
return 1;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
int main(){
int a[20], n, x;
int poz;
scanf("%d", &n);
if(n>20){
return 0;
ucitaj_niz(a,n);
if(issort(a,n)==1)
else
return 0;
4)
#include <stdio.h>
for(i=0;i<*pn;i++){
if(x<a[i])
break;
a[j+1]=a[j];
/* smestamo element x */
a[i]=x;
(*pn)++;
int i;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
int i;
for(i=0;i<n;i++)
printf("\n");
}
int main(){
int a[20+1], n, x;
scanf("%d", &n);
if(n>20){
return 0;
/* ucitavamo niz */
ucitaj_niz(a,n);
scanf("%d", &x);
/* ubacujemo element */
ubaci(a,&n,x);
pisi_niz(a,n);
return 0;
5)
#include <stdio.h>
for(i=0;i<*pn; ){
if(a[i]==x){
a[j]=a[j+1];
(*pn)--;
else
i++;
int i;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
int i;
for(i=0;i<n;i++)
printf("\n");
}
int main(){
int a[20], n, x;
scanf("%d", &n);
if(n>20){
return 0;
/* ucitavamo niz */
ucitaj_niz(a,n);
scanf("%d", &x);
/* izbacujemo element */
izbaci(a,&n,x);
pisi_niz(a,n);
return 0;
6)
#include <stdio.h>
if(poredak==1){
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
else{
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
int i;
for(i=0;i<n;i++)
scanf("%d", &a[i]);
}
int i;
for(i=0;i<n;i++)
printf("\n");
int main(){
int a[20], n, p;
scanf("%d", &n);
if(n>20){
return 0;
/* ucitavamo niz */
ucitaj_niz(a,n);
/* ucitavamo poredak */
scanf("%d", &p);
return 1;
/* sortiramo niz */
sort(a,n,p);
/* ispisujemo niz */
pisi_niz(a,n);
return 0;
1. Napisati funkciju
2. Napisati funkciju
void zameni3(char s[], char ns[])
koja zamenjuje svaki karakter niske s sa 3 naredna karaktera po
abededi i tako dobijenu nisku cuva u ns.
4. Napisati funkciju
int palindrom (char s[])
kojom se proverava da li je zadata niska s palindrom (za nisku kazemo
da je palindrom ako se isto cita i sa leve i sa desne strane).
5. Napisati funkciju
int anagrami (char s1[], char s2[])
kojom se proverava da li su dve zadate niske anagrami (za dve niske
kazemo da su anagrami ako se od slova prve niske moze formirati druga
niska).
1)
#include <stdio.h>
#define MAX_DUZINA 20
int i;
for(i=0;s[i]!='\0';i++){
if(s[i]=='a')
s[i]='b';
int main(void){
*/
char s[MAX_DUZINA+1];
/* ucitavamo nisku */
scanf("%s", s);
/* pozivamo funkciju */
zameni_a_sa_b(s);
return 0;
2)
#include <stdio.h>
#define MAX_DUZINA 20
int i;
for(i=0;s[i]!='\0';i++){
trazene karaktere:
ns[3*i]=s[i]+1;
ns[3*i+1]=s[i]+2;
ns[3*i+2]=s[i]+3;
ns[3*i]='\0';
int main(void){
char s[MAX_DUZINA+1];
char ns[3*MAX_DUZINA+1];
int i;
/* u petlji.. */
for(i=0;i<5;i++){
scanf("%s", s);
zameni3(s,ns);
/* i ispisujemo je */
return 0;
3)
#include <stdio.h>
#include <string.h>
#define MAX_DUZINA 20
int n;
int i;
/* duzina niske s */
n=strlen(s);
for(i=0;i<k;i++){
strcpy(ns+i*(n+1),s);
ns[i*(n+1)+n]='_';
ns[k*(n+1)-1]='\0';
int main(void){
char s[MAX_DUZINA];
char ns[(MAX_DUZINA+1)*10];
scanf("%s", s);
scanf("%d", &k);
izvrsavanjem programa
*/
if(k>10)
k=10;
formiraj_novu_nisku(s,ns,k);
/* i ispisujemo je*/
return 0;
4)
#include <stdio.h>
#include <string.h>
#define MAX_DUZINA 20
int n;
int i;
n=strlen(s);
for(i=0;i<n/2;i++)
if(s[i]!=s[n-1-i])
return 0;
return 1;
int main(){
char s[MAX_DUZINA+1];
scanf("%s", s);
if(palindrom(s)==1)
else
return 0;
5)
#include <stdio.h>
#include <string.h>
int i, j, n;
char tmp;
n=strlen(s);
/* i sortiramo... */
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(s[i]>s[j]){
tmp=s[i];
s[i]=s[j];
s[j]=tmp;
*/
uredi(s1);
/* uredjujemo karaktere druge niske */
uredi(s2);
if(strcmp(s1,s2)==0)
/* vracamo indikator 1 */
return 1;
return 0;
int main(void){
scanf("%s", s1);
scanf("%s", s2);
if(anagrami(s1,s2)==1)
else
return 0;
}
1. Data je struktura
struct complex{
double re;
double im;
}
2. Data je struktura
struct Student{
char ime[10];
char prezime[10];
char smer;
double prosek;
}
a) Napisati funkciju koj ucitava sa standardnog ulaza podatke o
studentu.
b) Napisati funkciju koja ispisuje podatke o studentu na standardni
izlaz.
1)
#include <stdio.h>
#include <math.h>
struct complex{
double re;
double im;
};
cc.re=c.re;
cc.im=-c.im;
return cc;
struct complex w;
w.re=u.re+v.re;
w.im=u.im+v.im;
return w;
struct complex w;
w.re=u.re*v.re-u.im*v.im;
w.im=u.re*v.im+u.im*v.re;
return w;
struct complex c;
scanf("%lf", &c.re);
return c;
if(c.im>0)
else
if(c.im<0)
else
printf("%lf\n", c.re);
int main(){
struct complex u, v;
struct complex z, p, w;
u=ucitaj();
v=ucitaj();
w=konjugovano(v);
pisi(w);
pisi(z);
p=proizvod(u,v);
pisi(p);
return 0;
2)
#include <stdio.h>
#include <string.h>
#define BROJ_STUDENATA 3
student u Student */
char ime[10];
char prezime[10];
char smer;
double prosek;
}Student;
printf("Ime: ");
scanf("%s", pS->ime);
printf("Prezime: ");
scanf("%s", pS->prezime);
\n\t l- profesor\
\n\t a-astronomija\n");
scanf("%c", &pS->smer);
printf("Prosek: ");
scanf("%lf", &pS->prosek);
printf("Smer: ");
switch(pS->smer){
printf("\n\n");
}
int i,j;
Student tmp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(s[i].prezime,s[j].prezime)>0){
tmp=s[i];
s[i]=s[j];
s[j]=tmp;
int main(void){
inforamcije o studentima;
Student s[BROJ_STUDENATA];
int i;
ucitaj_studenta(&s[i]);
printf("---------------------------------------------\n");
for(i=0;i<BROJ_STUDENATA;i++)
if(s[i].smer=='r')
pisi_studenta(&s[i]);
max=s[0].prosek;
redni_broj=0;
for(i=1;i<BROJ_STUDENATA;i++)
if(s[i].prosek>max){
max=s[i].prosek;
redni_broj=i;
printf("----------------------------------------\n");
pisi_studenta(&s[redni_broj]);
sortiraj_po_prezimenu(s,BROJ_STUDENATA);
printf("-----------------------------------------------\n");
for(i=0;i<BROJ_STUDENATA;i++)
pisi_studenta(&s[i]);
return 0;