Strona 1 z 1
[+] Program rysujący pusty w środku kwadrat, nie działa
: 20 października 2007, 20:23
autor: frantic
Kod: Zaznacz cały
#include<stdio.h>
void rysuj_kwadrat(int n){
for(n = 1; n <= 10; n += 1){
if ((n == 1) || (n == 10))
printf("**************");
else
printf("* *");
}
int main(){
rysuj_kwadrat;
return 0;
}
Kod: Zaznacz cały
gcc -o kw kwadrat.c
kwadrat.c: In function ‘rysuj_kwadrat’: kwadrat.c:12: error: expected declaration or statement at end of input
ktos wie o co mu chodzi? bo ja sie mecze z tym juz pol godziny i nic :-(
: 20 października 2007, 20:45
autor: ponton
¯eby wywołać funkcje, musisz dopisać nawiasy (). rysuj_kwadrat().
: 20 października 2007, 21:20
autor: thalcave
Kod: Zaznacz cały
#include<stdio.h>
void rysuj_kwadrat()
{
int n;
for(n = 1; n <= 10; n += 1)
if ((n == 1) || (n == 10))
printf("**************");
else
printf("* *");
}
int main()
{
rysuj_kwadrat();
return 0;
}
to działa - ale żadnego efektu nie ma :-? ... sensownego
: 20 października 2007, 21:57
autor: Theq
przydalyby sie znaki konca linii
: 21 października 2007, 01:15
autor: cepe
Kod: Zaznacz cały
#include <stdio.h>
void RysujKwadrat(int);
int main()
{
RysujKwadrat(10);
return 0;
}
void RysujKwadrat(int n)
{
int a,b;
a = n;
while (a--)
printf("*");
printf("\n");
a = n - 2;
while (a--)
{
printf("*");
b = n - 2;
while (b--)
printf(" ");
printf("*");
printf("\n");
}
a = n;
while (a--)
printf("*");
printf("\n");
}
Enjoy!
: 21 października 2007, 11:27
autor: frantic
@ponton: wiem jak sie wywoluje funkcje ale chodzilo mi o to czemu ta moja nie chce dzialac :-) to wywolanie dopisalem na szybko, stad tez blad ;-)
@cepe: ten twoj jest dobry ale poprawilem moj kod, jest troche bardziej zwiezly niz twoj ;-)
Kod: Zaznacz cały
#include<stdio.h>
void rysuj_kwadrat(int n){
for(n = 1; n <= 10; n += 1){
if ((n == 1) || (n == 10))
printf("* * * * * * * * * * *\n");
else
printf("* *\n");
}}
int main(){
rysuj_kwadrat(20);
return 0;
}
brakowalo "}" po printf("* *"); :-P
widac czas juz do okulisty
: 23 października 2007, 00:12
autor: mlyczek
[quote="frantic"]
Kod: Zaznacz cały
void rysuj_kwadrat(int n){
for(n = 1][/quote]
1) Po co robisz funkcję z parametrem i przekazujesz do tej funkcji jakiś parametr, skoro go później w niej nie wykorzystujesz? Jeśli ta funkcja rysowałaby kwadrat o n wielkościo to miałoby to sens, ale skoro ona zawsze rysuje taki sam kwadrat niezależnie od n, to po co go przekazujesz do tej funkcji?
2) [quote="frantic"]brakowalo "}" po printf("* *")]
Bo piszesz strasznie wszystko zwarte i nieczytelne, jakbyś miał program napisany tak jak ten wyżej, ale choćby tylko około 100 linii to nic w nim nie znajdziesz. Nie lepiej (i przede wszystkim czytelniej napisać go tak:
[code]#include<stdio.h>
void rysuj_kwadrat(int n)
{
for(n = 1; n <= 10; n += 1)
{
if ((n == 1) || (n == 10))
printf("* * * * * * * * * * *\n");
else
printf("* *\n");
}
}
int main()
{
rysuj_kwadrat(20);
return 0;
}
Przydałyby sie jeszcze jakieś komentarze. Dobre nawyki wyrabiane już na początku są bardzo ważne. Bo tak jak teraz nauczysz się pisać, tak będziesz pisać i w przyszłości.
: 23 października 2007, 20:17
autor: frantic
co do wciec to masz racje, musze sie tego nauczyc :->
mlyczek pisze:Po co robisz funkcję z parametrem i przekazujesz do tej funkcji jakiś parametr, skoro go później w niej nie wykorzystujesz? Jeśli ta funkcja rysowałaby kwadrat o n wielkościo to miałoby to sens, ale skoro ona zawsze rysuje taki sam kwadrat niezależnie od n, to po co go przekazujesz do tej funkcji?
po prostu uczylem sie robienia funkcji z parametrem i tylko takich uzywalem dotychczas bo zwykle wykonywaly one jakies dzialania arytmetyczne, i tutaj masz racje a kod tez poprawilem bo trzeba sie tych dobrych nawykow uczycz :-D
Kod: Zaznacz cały
#include<stdio.h>
void rysuj_kwadrat(){
int n]
co do komentarzy to w tym "programie" chyba nie ma czego komentowac bo funkcja ma dobra(chyba) nazwe i wiadomo co robi, jest tylko jedna petla wiec tak naprawde nie wiem co tu komentowac...
ale mniejsza z tym dopisuje [+] do tematu :-)