Už jsem to vyřešil. Nevím jestli uplně správně nebo ne, ale šlape to :D
Každopádně díky za rady :)
btw. použil jsem to "2D pole", které jste říkali že se v C nevyskytuje :D
Čauec, snažím se vyřešit jeden příklad v jazyce C, ale na něčem jsem se zasekl. nakopl by mě někdo?
Napište v jazyku C funkce pro vykreslování obrázků pomocí znaků (tzv. ASCII art).
-Obrázky se budou vykreslovat pomocí plátna -dvojrozměrné matice, která bude obsahovat jednotlivé znaky. Vykreslování se tedy neprovádí přímo na výstupu, ale pouze dochází ke změně daného plátna (strukturacanvas).
-Je možné "vykreslovat" i za hranicí kreslící plochy, tyto body se ale nebudou při zobrazení plátna vykreslovat. Jinými slovy, při pokusu o kreslení mimo plátno nedojde k výjimce při běhu programu.
Funkce:
canvas*canvas_create(intx, inty);
-funkce vytvoří plátno
void canvas_draw_rect(canvas *c, intx, inty, intwidth, intheight, char ch);
-funkce nakreslí na plátno na souřadnice (x,y) obdélník o velikosti widthx heightznakem ch
voidcanvas_clear(canvas*c);
-funkce vyčistí plátno
voidcanvas_print(canvas*c);
-funkce vytiskne plátno na obrazovku
Můj zdrojový kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{ char **c; int x, y;
} canvas;
canvas *canvas_creare(int x, int y);
void canvas_draw_rect (canvas *c, int x, int y, int width, int height, char ch);
void canvas_clear (canvas *c);
void canvas_printf (canvas *c);
canvas *canvas_creare(int x, int y)
{
int i;
canvas *temp = (canvas *) malloc (sizeof(canvas));
temp->x = x;
temp->y = y;
temp->c = (char**) malloc(x);
for (i = 0; i < x; i++)
temp->c[i] =(char*) malloc(y);
return temp;
}
void canvas_draw_rect (canvas *c, int x, int y, int width, int height, char ch)
{
int i,j;
for (i =x; i<= height;i++)
{
for(j=y; j< width;j++)
c->c[i][j] = ch;
}
}
void canvas_printf (canvas *c)
{
int i,j;
for (i = 0; i < c->x; i++)
{
{
for (j =0; j< c->y; j++)
{
if (c->c[i][j] != ' ')
printf ("%c", c->c[i][j]);
else
printf(" ");
}
}
printf ("\n");
}
}
void canvas_clear (canvas *c)
{
int i,j;
for(i=0;i<c->x;i++)
for(j=0;j<c->y;j++)
c->c[i][j]=' ';
}
int main(int argc, char* argv[])
{
canvas *c = canvas_creare(20,20);
canvas_clear (c);
canvas_draw_rect (c,5, 5, 10, 10, '*');
canvas_printf (c);
}
Kdyby Vás něco napadlo, dejte radu.
Mazy
prosim o radu-mojemu kamaradovi neznamy clovek zalozil profil na fc,pod jeho jmenem a identitou s jeho fotkami,a vydava se za neho,da se nejak obratit na nekoho
sorry za spam takto to ma byt:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char slovo[50];
printf("zadej vetu: ");
gets(slovo);
printf("zadali jste vetu: %s",&slovo);
getch();
}
už jsem na to přišel díky.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char slovo[50];
printf("zadej vetu: ");
scanf("%s",&slovo);
printf("zadali jste vetu: %s",slovo);
getch();
}
diky za rychlost :D
to je pro me novina a čím se tedy veta načte?? abych si ji mohl zase vypsat v druhe vete?
ahoj mám problém s načtením jakékoli vety do proměné:
#include <stdio.h>
int main()
{
string veta;
printf("zadejte vetu: ");
scanf("%s",&veta);
printf("zadali jste veta: %s",veta);
getch();
}
moje otázka je kde je chyba že vždy kompilator hodi chybu hned u prvního řádku string veta???? a taky jestli je dobre ta ridici sekvence u %s?
diky
díky už to jede
Ahoj mám problém v překládání programu.
mám základní program např:
#include <stdio.h>
int main(void) {
printf("Hallo world");
return 0;
}
a po zkompilaci v programu DEV-C++ a následém ladění se příkazová řádka objeví tak na půl sekundy a a hned se zavře.
Vím že tam chybí konec C# to bylo Console.ReadLine(); ale tady nevim jaky to má být.
díky