Oooo,pa kolega!
Ispis ovih uzoraka,koji mogu imati najrazličitije forme,mi je uvijek bio agonija.
Čudno mi je sa tim zadacima da su opet riješeni korištenjem funkcije
printf
.
U gornjem zadatku varijablu
n
preimenuj u npr.
broj_redova
,a i ostale preimenuj tako da je razumljivije šta one zapravo predstavljaju,ovako je program samo više kriptičan.
Evo ti kod za unos broja redova od strane korisnika,pošto pretpostavljam da sada kampanjski učiš pred ispit:
Code:
printf("Unijeti broj redova:");
scanf("%d",&broj_redova);
Varijablu
broj_redova
setuj na vrijednost
0
,tako da uvijek imaš pravi broj redova realiziran.Ovako ti nedostaje jedan.
Evo ti rješenje gornjeg zadatka,slučajno baš ovaj primjer imam riješen.Nadam se da ćeš shvatiti:
Code:
#include <stdio.h>
int i,j,red;
main()
{
printf("Unijeti broj redova:");
scanf("%d",&red);
for(i=0;i<red;i++)/*Ovo definise broj redova.*/
{
for(j=0;j<red-i;j++)/*Ovo definise broj praznih mjesta.Kako i raste,tako se smanjuje broj praznih mjesta.*/
putchar(' ');
for(j=0;j<=i;j++)/*Ovo definise znakove prvog dijela piramide.Kako i raste,moze rasti i j i time se povecava i vrijednost koja se pokazuje sa %c.*/
printf("%c",'A'+j);
for(j=1;j<=i;j++)/*Ovo definise znakove drugog dijela piramide.Kako i raste,moze rasti i j i time se smanjuje i vrijednost koja se dodaje na A tako da rezultat dat sa %c ponovo tezi ka A.*/
printf("%c",'A'+i-j);
putchar('\n');
}
printf("\n");
system("PAUSE");
}
Ako malo modifikuješ drugu petlju u programu,dobivaš lakše ideju šta ona radi:
[Ovu poruku je menjao R A V E N dana 13.05.2008. u 13:56 GMT+1]