Quantcast

Pomoć oko C

Mister Sparkle

Aktivan član
Poruka
1.395
Druga sam godina smera elektrotehničar računara i pošto imam 5 u nekoj sam 'advanced' grupici. Dobili smo od profesora na papiru neke programe koji bi trebalo da ispisuju figure zvezdica.
Npr.

*
***
*****
*******

*
**
***
****
*****

Međutim kada sam pokušao da ispišem programe sa papira u compiler uvek je bilo dosta grešaka. Može li mi neko napisati jedan primer ovog zadatka(da je tačan) i po mogućstvu objasniti kako to radi? U zadatcima je korišćena for petlja. Svaka pomoć je dobrodošla :)
 

hirajgoagain

Zaslužan član
Poruka
126.255
daj jednu gresku

nesto ovako, bar ovo pod 2.

int i,j, n=5;

for (j=0;j++; j<n) {

for (i=0; i++; i<n) {

putchar('*');

}

putchar(<enter>); // nekako ispisati enter, printf?

}

ne znam za ovaj ispis, ovo je valjdamalo kao pseudokod
 
Poslednja izmena:

Mister Sparkle

Aktivan član
Poruka
1.395
Radi, hvala. Ako može neko objašnjenje kako radi u inbox ili ovde bilo bi još bolje :)
Je l' moguće napraviti sličnu figuru ali da bude oblika jelke, dakle kao iz ovog primera sa još jednim mirror odrazom?


Ovaj bi trebao da ispisuje broj 7, ali takođe ima negde neku grešku...
420265_482062565174994_1540390180_n.jpg
 

Agni.l33t

Zainteresovan član
Poruka
423
Radi, hvala. Ako može neko objašnjenje kako radi u inbox ili ovde bilo bi još bolje :)
Je l' moguće napraviti sličnu figuru ali da bude oblika jelke, dakle kao iz ovog primera sa još jednim mirror odrazom?

Naravno, uz manje modifikacije
Kod:
#include <stdio.h>

void main(){

	int i,j,n;
	
	scanf("%d", &n);
	for(i=0; i<n; i++){
		for(j=0; j<n+i; j++)
			if(i>n-3){
				(j>=n-2) ? putchar('*') : putchar(' ');
				if(j>=n) break;
			}else
				(j>=n-i-1) ? putchar('*') : putchar(' ');
		putchar('\n');
	}	
	
}


Ovaj bi trebao da ispisuje broj 7, ali takođe ima negde neku grešku...
Pogledajte prilog 274103

Ovo se jedva vidi, prekucaj kod inače ne mogu da ti pomognem.
 

Mister Sparkle

Aktivan član
Poruka
1.395
#include<stdio.h>
#include<conio.>
main()
{
int m,r,x,a;
clrscr();
printf("Unesi velicinu stranice:zn");
for(m=1;m<=r;m++)
{
printf("o");
}
printf("\n");
for(a=1;a<=r;a++)
{
for(x=1;x<=r;x++)
{
if(x<=r-1)
{
printf(" ");
}
else
{
printf("o\n");
}
}
}
getch();
}
 

Agni.l33t

Zainteresovan član
Poruka
423
Kod:
#include <stdio.h>

void main(){
    int w,h,i,j,k;
    printf("Unesite sirinu:\n\n");
    scanf("%d", &w);
    h = w;
    for(i=0; i<w; i++)
        putchar('o');
    putchar('\n');

    for(j=0; j<h; j++){
        for(k=0; k<w-j-1; k++)
            putchar(' ');
        printf("o\n");
    }

    getch();

}
 

hirajgoagain

Zaslužan član
Poruka
126.255
pochni da uvlacis te forove i ifove, da se vide petlje
a to ne moze tek tako ok : ) nego u prozor
ispred "main()" stavi int ili void

pa znaci imas dve petlje
kad je spoljna npr 3, unutrasnja radi 0,1,2 pa izadje
kad je spoljna 4 - 0,1,2,3
i kad spoljna zavrsi gotovo je

ispravite i mene??
 
Poslednja izmena:

Mister Sparkle

Aktivan član
Poruka
1.395
Kod:
#include <stdio.h>

void main(){
    int w,h,i,j,k;
    printf("Unesite sirinu:\n\n");
    scanf("%d", &w);
    h = w;
    for(i=0; i<w; i++)
        putchar('o');
    putchar('\n');

    for(j=0; j<h; j++){
        for(k=0; k<w-j-1; k++)
            putchar(' ');
        printf("o\n");
    }

    getch();

}

Ovo sve radi odlično, hvala još jednom, možeš da mi preporučiš neki ebook ili tako nešto da shvatim ovo?
 

Agni.l33t

Zainteresovan član
Poruka
423
Ovo sve radi odlično, hvala još jednom, možeš da mi preporučiš neki ebook ili tako nešto da shvatim ovo?

Nikakav ebook ti nije potreban da bi shvatio ovo.
Evo npr. što se tiče ovog zadatka gde se traži ispis broja 7, prva petlja je trivijalna i u njoj samo ispisuješ niz karaktera 'o' one dužine koju je uneo korisnik i koju čuvaš u promenljivoj w (width).
Druga pelja je nešto složenija, ona će se izvršiti takođe w puta kao i prva jer je h = w. Uveo sam promenljivu h čisto da te asocira na visinu (eng. height) jer ti u svakoj iteraciji nakon što ispišeš karater 'o'
prelaziš u narednu liniju.
U unutrašnjoj petlji ispisuješ razmake i to uvek za jedan manje nego u prethodno iteraciji jer se k vrti od 0 do w-j-1.
Dakle nakon što unutrašnja petlja ispiše dovoljan broj razmaka ispiše se 'o' i pređe u novi red i tako u svakoj narednoj iteraciji, svaki put broj razmaka koje ispisuješ je manji za jedan.

Nadam se da je sad bar malo jasnije, što se tiče literature imaš ovde na forumu dosta tema gde su ljudi ostavljali linkove ka raznim tutorijalima, i literaturi koja ti može pomoći u savlađivanju jezika C.
 
Poslednja izmena:
stanje
Ova tema je zatvorena zbog neaktivnosti. Molim objavite novu temu i pridružite se diskusiji.

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.