Home

About me

C-Tutorial Croatian

C-tutorial examples

Electronics

Funny stuff

Links

 

 

 

 

 

   
C Tutorial na hrvatskom - rješenja zadataka


Autor: Vinko Kojundžija
Godina prvog objavljivanja: 1999
Zadnja izmjena: 10.3.2005
Email: vinko_kojundzija@yahoo.com
Home page: http://www.oocities.org/vinko_kojundzija/
Opis: Tutorial je namjenjen učenju programskog jezika C, te su sadržane i neke najosnovnije upute za rad sa BORLAND C-om 3.X


Zadatak 1:
#include <stdio.h>
#include <conio.h>

int main(void)
{
int suma,i,x;

suma = 0;

for(i=1;i<=10;i++)
{
printf("\nUnesi broj %d: ",i);
scanf("%d",&x);
suma += x;

}

printf("\nProsjek: %d",suma / 10); /* netocniji nacin */
printf("\nProsjek: %f",(float)suma / (float)10); /* tocniji nacin */

getch();

return 0;
}

Zadatak 2:
#include <stdio.h>
#include <conio.h>

int main(void)
{
char c;
int b;

b = 0;
printf("\nPritskaj tipke, q za kraj\n");

do{

c = getche();
b++;

}while(c != 'q');

printf("\nBroj unesenih tipki: %d",b);

return 0;

}

Zadatak 3:
#include <stdio.h>
#include <conio.h>

int main(void)
{
int i,max,b[100];

max = 0;
do{

printf("\nUnesi broj: ");
scanf("%d",&b[max]);
max++;

if(max == 100) break; /*prekidanje petlje ako je uneseno 100 brojeva */

}while(b[max-1] != 0);

max-=2; /*max se mora smanjiti za dva zato jer je za dva prevelik
probajete maknuti taj redak */

printf("\nSada obrnuto:");

for(i=max;i>=0;i--)
{
printf("\nBroj: %d: %d",i,b[i]);
}

getch();

return 0;
}

Zadatak 4:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
int duljina,i;
char str1[200],*str2; /*pretpostavljamo da uneseni
string nece biti dulji od 200 znakova*/

printf("\nUnesi string: ");
gets(str1);

duljina = strlen(str1);
str2 = (char *) malloc(duljina + 1); /*alociranje duljina + 1 znak, dodatni
znak ce posluziti za null znak*/

for(i=0;i<duljina ;i++)
{
str2[i] = str1[duljina - i-1];
}
str2[duljina] = 0;

printf("\nUneseni: %s\nObrnuti: %s",str1,str2);

return 0;

}

Zadatak 5:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
int vel, **tabela,i,t,brD=0;
printf("\nUnesi velicinu kvadratne matrice: ");
scanf("%d",&vel);
tabela = (int **) malloc(vel * sizeof(int*));

for(i=0;i<vel;i++)
{
tabela[i] = (int *) malloc(vel * sizeof(int));
for(t=0;t<vel;t++)
{
printf("\nUnesi clan %d %d: ",i,t);
scanf("%d",&tabela[i][t]);
}

}
printf("\nRezultat: \n");

for(i=vel-1;i>=0;i--) /*vrti petlju gdje je i pocetna kolona dijagonale */
{
printf("\nDijagonala%d: ",++brD); /*ispisi redni broj dijagonale */
for(t=0;t<vel;t++)
{
if(i+t >= vel)continue; /*ako je i+t vece od vel tada nastavi sa sljedecim */
printf(" %d",tabela[t][i+t]);
}
}

for(i=1;i<vel;i++) /*vri petlju gdje je i pocetni red dijagonale */
{
printf("\nDijagonala%d: ",++brD);
for(t=0;t<vel;t++)
{
if(i+t >= vel)continue;
printf(" %d",tabela[i+t][t]);
}
}

getch();

return 0;
}

Zadatak 6:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

/*stvaranje strukture:*/
typedef struct
{
char *ime;
char *prezime;
int *ocjene;
float prosjek;
}UCENIK;

/*globalne varijable*/
int brUc,brOc;

/*deklaracija funkcija*/
char *unesi_str(void);
void izracunaj_prosjek(UCENIK *uc);

int main(void)
{
int i,t,priv,*redoslijed; /*redosljed sluzi za slaganje po prosjeku*/
UCENIK *ucenik;

printf("\nUnesi broj ucenika: ");
scanf("%d",&brUc);
printf("\nUnesi broj ocjena po uceniku: ");
scanf("%d",&brOc);

ucenik = (UCENIK *) malloc(brUc * sizeof(UCENIK)); /*alokacija*/
if(!ucenik) { printf("\nOut of memory!"); return; } /*provjera*/
redoslijed = (int *) malloc(brUc * sizeof(int));
if(!redoslijed) { printf("\nOut of memory!"); return; }

for(i = 0;i<brUc;i++)
{
redoslijed[i] = i; /*pretpostavi poredak*/
ucenik[i].ocjene = (int *) malloc(brOc * sizeof(int));
if(!ucenik[i].ocjene){ printf("\nOut of memory!"); return; }

printf("\nUnesi ime za ucenika %d: ",i+1);
ucenik[i].ime = unesi_str();
printf("\nUnesi prezime za ucenika %d: ",i+1);
printf("\nUnesi prezime za ucenika %d: ",i+1);
ucenik[i].prezime = unesi_str();

for(t=0;t<brOc;t++)
{
do{
printf("\nUnesi ocjenu %d za ucenika %d: ",t+1,i+1);
scanf("%d",&priv);
}while(priv < 1 || priv > 5);/*dali je unesena ocjena iz skupa brojeva 1-5*/
ucenik[i].ocjene[t] = priv;
}

izracunaj_prosjek(&ucenik[i]); /*pozovi funkciju za racunanje prosjeka*/

}

/*sortiranje metodom razmjene*/
for(i=0;i<brUc;i++)
{
for(t=0;t<brUc;t++)
{
if(ucenik[redoslijed[i]].prosjek > ucenik[redoslijed[t]].prosjek)
{
/*ako je iz prosjek iz vanjske petlje veci, tada zamjeni*/
priv = redoslijed[i];
redoslijed[i] = redoslijed[t];
redoslijed[t] = priv;
}
}
}

/*ispis*/
for(i=0;i<brUc;i++)
{
printf("\nUcenik rednog broj: %d:",redoslijed[i]+1);
printf("\nIme :%s",ucenik[redoslijed[i]].ime);
printf("\nPrezime :%s",ucenik[redoslijed[i]].prezime);
printf("\nProsjek :%f\n",ucenik[redoslijed[i]].prosjek);

}

return 0;

}

/*funkcija za unos stringa*/
char *unesi_str(void)
{
char priv_str[150],*s; /*buffer od 150 znakova*/
int len;

scanf("%s",priv_str);
len = strlen(priv_str);
s = (char *)malloc(len + 1);
if(!s){ printf("\nOut of memory!"); exit(1); }
strcpy(s,priv_str);
return s;
}

void izracunaj_prosjek(UCENIK *uc)
{
int i,zbroj=0;

for(i = 0; i<brOc;i++)
{
zbroj += uc->ocjene[i];
}
uc->prosjek = (float)zbroj / (float)brOc;
}

Povratak na C-tutorial





 

 

 

 

 

 

 

 

 

 
Vinko Kojundzija (c) 2005