Witam. Uczę się dopiero programować w języku C i mam takie zadanie https://zapodaj.net/d301bc6520604.jpg.html
program wypisujący tekst
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Nie wiem jak zrobić taki układ gwiazdek i żeby w tych rzędach było ich tyle samo
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
char foo[] = {
69,107,114,97,110,58,10,42,42,42,42,42,42,42,42,42,42,42,42,42,10,84,101,
107,115,116,32,112,105,101,114,119,115,122,121,10,42,42,42,42,42,42,42,42,
42,42,42,42,42,10,42,32,42,10,32,42,32,42,10,32,32,42,32,42,10,32,32,32,42,
32,42,10
};
int main()
{
for(int i = 0; i < sizeof foo; i++)
printf("%c", foo[i]);
}
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
A da się jakoś prościej, bo dotąd takiego czegoś jeszcze na studiach nie mielismy
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
Zadałeś pytanie w taki sposób, że nikomu się nie chce poważnie odpowiadać. Przeredaguj je, wykaż minimum chęci, a wtedy chętnie pomożemy.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Jak napisać program wypisujący
Ekran:
**************
Tekst pierwszy
**************
* *
* *
* *
* *
Inaczej niż w kodzie mi się źle wyświetla
- Rejestracja: dni
- Ostatnio: dni
- Postów: 394
Tak lepiej :)
Generalnie to po prostu poszukaj przykładowego kodu dla Hello World w necie. Taki program wypisze napis "Hello world". Po prostu go przerób, żeby wypisał to, co Ty chcesz :)
I pamiętaj, że znak nowej linii to \n
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Czyli muszę jakoś tak napisać żeby wyświetlało po równo gwiazdek i nie da się inaczej?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
Z opisu zadania naprawdę nie wiadomo o co chodzi. Literalne wypisanie podanego tekstu zdaje się spełniać jego warunki, a wtedy żadnej logiki nie ma.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 394
Jak chcesz, żeby było fajnie to możesz te gwiazdki taki wypisać:
const int STAR_COUNT = 4;
for (int i = 0; i < STAR_COUNT; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
printf("* *\n");
}
Sorki, jak zrobiłem jakiegoś babola, napisane na szybko.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Co tutaj mam źle?
#include<stdio.h>
main()
{printf("Ekran:\n***************\n
tekst pierwszy\n***************\n
* *\n
* *\n
* *\n ")
}
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
C:\Users\x\Desktop\programowanie c\zadanie 1.c In function 'main':
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Warning] missing terminating " character
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] missing terminating " character
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] 'tekst' undeclared (first use in this function)
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Note] each undeclared identifier is reported only once for each function it appears in
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] expected ')' before 'pierwszy'
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] stray '' in program
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] stray '' in program
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] stray '' in program
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] stray '' in program
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] stray '' in program
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Warning] missing terminating " character
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] missing terminating " character
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] expected ';' before '}' token
C:\Users\x\Desktop\programowanie c\Makefile.win recipe for target '"zadanie 1.o"' failed
- Rejestracja: dni
- Ostatnio: dni
No bo tak nie można dzielić literału na linie.
Można tak:
printf("Ekran:\n***************\n"
"tekst pierwszy\n***************\n"
// etc
- Rejestracja: dni
- Ostatnio: dni
- Postów: 394
No i wszystkie wywołania powinieneś kończyć średnikiem.
Nie bój żaby, tydzień czasu to sporo.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Teraz mam coś takiego i układ gwiazdek się nie zgadza ale program się uruchamia
#include<stdio.h>
main()
{printf("Ekran:\n***************\n"
"tekst pierwszy\n***************\n"
"* *\n"
"* *\n"
"* *\n ");
}
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
Wypisujesz tylko to co jest wewnątrz "", a tam nie masz odstępów.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 192
W ten sposób?
#include<stdio.h>
int main() {
printf("Ekran:\n***************\nTekst pierwszy<znak_nowej_lini>***************\n* *\n * *\n * *\n * *");
}
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
@Nikto0: pogłówkuj trochę, poeksperymentuj.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Próbowałam przy pomocy, ale mi nie wyszło ktoś pomoże?
\t
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4883
'\n' jest nowa linia ' ' jest spacja. Teraz polacz wszystko co tu przeczytales w jedno
" * \n";
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Może ktoś napisać tutaj kod źródłowy, bo mi nie wychodzi.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
Dostałeś już kodów, dostałeś też komentarze do istniejącego.
printf(" a b\n");
printf( " a b\n");
printf(
" a b\n");
Odpal sobie ten kod i zastanów się dlaczego wypisuje co wypisuje.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 331
Rozumiem dlaczego tak się dzieje w kodzie który napisałeś, ale jak próbuję zrobić spację to mam błędy
#include<stdio.h>
main()
{printf("Ekran:\n***************\n"
"tekst pierwszy\n***************\n"
'* *\n';
'* *\n';
'* *\n ');
}
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Warning] multi-character character constant [-Wmultichar]
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Error] expected ')' before '\x2a202a0a'
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Warning] multi-character character constant [-Wmultichar]
C:\Users\x\Desktop\programowanie c\zadanie 1.c [Warning] character constant too long for its type
C:\Users\x\Desktop\programowanie c\Makefile.win recipe for target '"zadanie 1.o"' failed
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Szczecin
'X' oznacza znak, nie ciąg znaków, @fasadin dał błędną radę - tutaj użyj ""
Żeby nie robić zadania za ciebie, ale dać jakąś sensowną podpowiedź:
printf("Line 1:\n"
"Line 2:\n"
" Indented line\n");
Ewentualnie każdą linię wypisz osobnym wywołaniem printf, nikt się o to specjalnie nie obrazi:
printf("Line 1:\n");
printf("Line 2:\n");
printf(" Indented line\n");