[C] Co wypisze program-problem.
Ostatnio zmodyfikowano 2017-02-08 09:16
gromko12 Temat założony przez niniejszego użytkownika |
[C] Co wypisze program-problem. » 2017-02-07 22:55:00 Witam, czy ktoś mógłby mi wytłumaczyć dlaczego dany kod: #include <stdio.h> int a = 2, b = 3;
int Fun2( char * s ) { static int t = 1, b = 2; printf( "\nF: %c %c", * s + t, *( s + b ) ); return( t += b ); }
int main() { char txt[ 11 ] = "Ala ma kota"; printf( "%d", b ); b += Fun2( txt ); printf( "\n M: %d %d", Fun2( txt ), b ); return 0; } wypisuje następującą treść: 3 M: B a F: D a M: 5 6 Na czym polega dodawanie wartości do zdania, i jak to działa? Z góry dziękuje za pomoc ;) |
|
michal11 |
» 2017-02-07 23:05:07 Kto robi takie chore programy?
Najłatwiej prześledzić co robi ten program to będzie pewnie debuggerem, tam zobaczysz jaka linijka po linijce się wywołuje i jakie aktualnie wartości mają dane zmienne. |
|
Nazgul |
» 2017-02-08 04:24:24 Nie wiem jakiego kompilatora używasz, ale nie jest najlepszy. Nie powinieneś móc skompilować kodu char txt[ 11 ] = "Ala ma kota";
gdyż "Ala ma kota" to tak naprawdę "Ala ma kota\0"(12 charów, nie 11). na końcu "\0" to jest jeden znak oznaczający koniec tekstu(żeby program orientował się kiedy skończyć czytanie łańcucha). Do tego twój output jest błędny, także nie wiem czy moja pomoc będzie yy pomocna. napiszę komentarze wyjaśniające co robi program, założę, że w tej błędnej linijce(patrz wyżej) kompilator po prostu nie wpisał znaku '\0'. napiszę dwa razy funkcję Fun2(...), bo przez zmienne statyczne są inne wyjścia z programu. zacznij czytać poniższy opis tak jak idzie program... od funkcji main() #include <stdio.h> int a = 2, b = 3;
int Fun2( char * s ) { static int t = 1, b = 2; printf( "\nF: %c %c", * s + t, *( s + b ) ); t = t + b; return t }
int Fun2( char * s ) { static int t = 3, b = 2; printf( "\nF: %c %c", * s + t, *( s + b ) ); t = t + b; return t }
int main() { char txt[ 11 ] = "Ala ma kota"; printf( "%d", b ); b += Fun2( txt ); printf( "\n M: %d %d", Fun2( txt ), b ); return 0; }
Mam nadzieję że zczaisz... zrobiłeś taki bałagan w tym programie, że serio inaczej się nie dało. |
|
gromko12 Temat założony przez niniejszego użytkownika |
» 2017-02-08 09:16:08 Jest to część z zadania z egzaminu, a używam CodeBlocks`a |
|
« 1 » |