[ANSI C] Szukanie błędu w rozumowaniu w zadaniu (zasięg zmiennej) i zadanie zadanie z szachownicą.
Ostatnio zmodyfikowano 2016-03-09 21:51
probs Temat założony przez niniejszego użytkownika |
[ANSI C] Szukanie błędu w rozumowaniu w zadaniu (zasięg zmiennej) i zadanie zadanie z szachownicą. » 2016-03-07 11:19:08 Witam serdecznie, mój pierwszy post tutaj, ale biorąc pod uwagę ogrom podjętych tematów zapewne nie ostantnia moja wizyta tutaj. :) Chciałem się zapytać użytkowników o dwa zadania. Zad. 1. Dlaczego mi wyświetla 1 5 8? A nie 3, 5, 8? Gdzie popełniłem błąd w rozczytywaniu tego kodu? int c = 6; void main() { int a, b, c; a = 1; b = 4; c = 7; { int a; { a = 2; } a = 3; b = 5; c = 8; } printf( "%d %d %d\n", a, b, c ); }
Zad. 2. Napisać program rysujący szachownicę o podanej przez użytkownika wielkości, np.: 5 4 # # # # # # # # ################### # # # # # # # # ################### # # # # # # # # ################### # # # # # # # #
Jak to ugryźć? Będę wdzięczny za wskazówki. W obecnej chwili przerabiam podręcznik autorów języka C i mam status początkującego, albo ściślej rzecz ujmując amatora w programowaniu. :) |
|
carlosmay |
» 2016-03-07 11:25:15 { int a, b, c; a = 1; b = 4; c = 7; { int a; { a = 2; } a = 3; b = 5; c = 8; } printf( "%d %d %d\n", a, b, c ); }
Zagnieżdżone pętle. |
|
probs Temat założony przez niniejszego użytkownika |
» 2016-03-09 21:27:25 Dzięki za pomoc z pierwszym. Dopytałbym o dodatkowy wniosek płynący z tego pytania: nie można dwa razy zdeklarować zmiennej w jednym bloku w języku C? Po kompilacji tego kodu i jego różnych wariacji (próba zmiany inkrementacji), spacji \nów dostaję różne regularne struktury, ale wciąż nie to co jest w treści punktu 2. Czy mógłbym prosić o dodatkowe wskazówki do kodu? int x, y; int main() { for( x = 0; x < 8; x++ ) { for( y = 0; y < 8; y++ ) { printf( " #" ); } printf( "\n\n\n#" ); } return 0; }
|
|
carlosmay |
» 2016-03-09 21:51:24 nie można dwa razy zdeklarować zmiennej w jednym bloku w języku C? |
W jednym bloku nie. Natomiast w jednym pliku, różnych blokach tak (pamiętając, że zmienna zewnętrzna będzie zakryta przez definicję zmiennej wewnętrznej). Należałoby poczytać o stosie. #include <cstdio> int zmienna; namespace my_space { int zmienna = 1; }
int main() { int zmienna = 2; printf( "%i \n",::zmienna ); printf( "%i \n", my_space::zmienna ); printf( "%i \n", zmienna ); } Zad. 2. Napisać program rysujący szachownicę o podanej przez użytkownika wielkości, np.: |
Łatwiej napisać kod: #include <cstdio> int main() { int szer_pola = 4; int wys_pola = 3; int szer; int wys; scanf( "%i %i", & szer, & wys ); int i = 1; int j = 1; while( i <( wys * wys_pola ) ) { j = 1; if( i % wys_pola ) while( j <( szer * szer_pola ) ) { if( j % szer_pola ) printf( "%c", ' ' ); else printf( "%c", '#' ); j += 1; } else while( j <( szer * szer_pola ) ) { printf( "%c", '#' ); j += 1; } ++i; printf( "\n" ); } } |
|
« 1 » |