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