| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 03.02.09 Prihlásený: 10.02.09 Príspevky: 3 Témy: 1 | Napísal Aero: 03.02.2009 22:15 | |
|
Chcel som pre jednu slečnu spraviť programik ktory by po napisani jej mena vyhodil obrazok (srdiečko konkretne :-P ) ale vyskytlo sa par problemov a neviem kde je vada :-P zatial som sa dopracoval k tomuto :
Kód: #include <stdio.h> #include <stdlib.h>
int main(void) { char m[10], a[10]="tatiana"; printf("Napis svoje meno: "); scanf("%s", &m);
if (m=="a") printf("\n""____________000000____________000000______________ ", m);
else printf("\n""____________000000____________000000______________ ", m); printf("\n""__________000000000000______000000000000__________ ", m); printf("\n""______000000000000000000__000000000000000000______ ", m); printf("\n""____00000000000000000000000000000000000000000_____ ", m); printf("\n""___00000000000000___000000000___00000000000000____ ", m); printf("\n""__000000000000000___000000000___000000000000000___ ", m); printf("\n""_0000000000000000___000000000___0000000000000000__ ", m); printf("\n""_0000000000000000___000000000___0000000000000000__ ", m); printf("\n""_0000000000000000___000000000___0000000000000000__ ", m); printf("\n""_0000000000___000000000000000000000___0000000000__ ", m); printf("\n""__000000000___000000000000000000000___000000000___ ", m); printf("\n""___000000000___0000000000000000000___000000000____ ", m); printf("\n""_____000000000___000000000000000___000000000______ ", m); printf("\n""_______00000000____00000000000____00000000________ ", m); printf("\n""__________0000000_______________0000000___________ ", m); printf("\n""_____________0000000000000000000000000____________ ", m); printf("\n""_______________000000000000000000000______________ ", m); printf("\n""__________________000000000000000_________________ ", m); printf("\n""___________________000000000000___________________ ", m); printf("\n""______________________000000______________________ ", m); printf("\n""_______________________0000_______________________", m); printf("\n\n\n"); system("PAUSE > nul"); return 0; }
Viem ze tam je to if a else naopak ale ked zadam ten obrazok ku if tak mi pri else už vyhadzuje chybu .. .asi tam treba oznacit ze pod if patri cely ten obrazov so vsetkymi printf ale neviem jak na to. A pri if (m=="a") ma to ignoruje ze aj ked zadam to co je deklarovane ako "a" tak to proste skoci na else ... uvazovali sme ze by to mohlo mat nieco docienia so stisnutim enteru ale neviem :-P ... s Cčkom som začal tak pred tyždňom čiže som v tom lamka tak mi plz niekto pomožte :-P Dik moc
|
|
Registrovaný: 02.09.05 Prihlásený: 17.11.10 Príspevky: 154 Témy: 1 |
Kód: #include <stdio.h> #include <stdlib.h> #include <string.h>
int main(void) { char m[255]; printf("Napis svoje meno: "); scanf("%s", m);
if (strcmp(m, "tatiana")) { printf("Nothing for you...\n"); system("pause"); return 0; }
printf("\n\n____________000000____________000000______________\n"); printf("__________000000000000______000000000000__________\n"); printf("______000000000000000000__000000000000000000______\n"); printf("____00000000000000000000000000000000000000000_____\n"); printf("___00000000000000___000000000___00000000000000____\n"); printf("__000000000000000___000000000___000000000000000___\n"); printf("_0000000000000000___000000000___0000000000000000__\n"); printf("_0000000000000000___000000000___0000000000000000__\n"); printf("_0000000000000000___000000000___0000000000000000__\n"); printf("_0000000000___000000000000000000000___0000000000__\n"); printf("__000000000___000000000000000000000___000000000___\n"); printf("___000000000___0000000000000000000___000000000____\n"); printf("_____000000000___000000000000000___000000000______\n"); printf("_______00000000____00000000000____00000000________\n"); printf("__________0000000_______________0000000___________\n"); printf("_____________0000000000000000000000000____________\n"); printf("_______________000000000000000000000______________\n"); printf("__________________000000000000000_________________\n"); printf("___________________000000000000___________________\n"); printf("______________________000000______________________\n"); printf("_______________________0000_______________________\n"); printf("________________________00________________________\n\n\n");
system("pause"); return 0; }
Je potrebne zadat slovo "tatiana", aby sa dostavil pozadovany efekt...
_________________ Múdry nie je ten, čo veľa vie, ale ten, kto vie, čo je treba. (Thomas Alva Edison) |
|
Registrovaný: 03.02.09 Prihlásený: 10.02.09 Príspevky: 3 Témy: 1 | Napísal autor témy Aero: 03.02.2009 23:13 | |
|
Dik moc za pomoc
Vidno že v tom mam ešte veľmi malo vedomosti nakoľko si tam pridal nejaky prikaz čo nemam šajn čo robi a nejaku dalšiu knižnicu ešte raz diky
|
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
Ide o to, ze nemozes porovnavat dve polia (resp. retazce) naraz, ale znak po znaku - a to prave robi funkcia strcmp(). V pripade ze sa tieto retazce nerovnaju (teda vrati 1), program skonci. Je deklarovana v hlavickovom subore string.h, preto tam je to #include <string.h>
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 03.02.09 Prihlásený: 10.02.09 Príspevky: 3 Témy: 1 | Napísal autor témy Aero: 04.02.2009 21:22 | |
|
Aha ďakujem za vysvetlenie :-P Take niečo spominala aj učiteľka Cčka ale zaprve som jej chapal len z častia aza druhe som nevedel ako porovnavať znak po znaku
|
|
Registrovaný: 27.06.08 Prihlásený: 04.07.11 Príspevky: 114 Témy: 12 | Napísal Watik: 07.02.2009 14:36 | |
|
dobre ako mozno sa myslim ale pri tom scanf si nezabudol znak & ??? viem ze malickost len ma to zarazilo ze to tam nie je
Kód: scanf("%s",&m);
|
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 07.02.2009 15:24 | |
|
no pretoze pri retazci sa to tam nedava pretoze m znamena ze ukazuje na dany retazec takzetak
|
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
Hej, identifikator retazca predstavuje adresu prveho prvku (teda m je v podstate pointer), takze na ziskanie tejto adresy nepotrebujes referencny operator &...
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 27.06.08 Prihlásený: 04.07.11 Príspevky: 114 Témy: 12 | Napísal Watik: 08.02.2009 16:51 | |
|
aha dakujem za vysvetlenie
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|