program wypisujący tekst

0

Witam. Uczę się dopiero programować w języku C i mam takie zadanie https://zapodaj.net/d301bc6520604.jpg.html

0

Nie wiem jak zrobić taki układ gwiazdek i żeby w tych rzędach było ich tyle samo

3
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]);
}
0

A da się jakoś prościej, bo dotąd takiego czegoś jeszcze na studiach nie mielismy

1

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.

0

Jak napisać program wypisujący

Ekran:
**************
Tekst pierwszy
**************
* *
 * *
  * *
   * *


Inaczej niż w kodzie mi się źle wyświetla

2

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

0

Czyli muszę jakoś tak napisać żeby wyświetlało po równo gwiazdek i nie da się inaczej?

0

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.

0

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.

0

Co tutaj mam źle?

#include<stdio.h>
main()
{printf("Ekran:\n***************\n
 tekst pierwszy\n***************\n
                  * *\n
				   * *\n
				     * *\n ")
	
}

0

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

2

No bo tak nie można dzielić literału na linie.
Można tak:

printf("Ekran:\n***************\n"
 "tekst pierwszy\n***************\n"
// etc
0

Proszę o pomoc za tydzień mam kolokwium

3

No i wszystkie wywołania powinieneś kończyć średnikiem.

Nie bój żaby, tydzień czasu to sporo.

0

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 ");
	
}

1

Wypisujesz tylko to co jest wewnątrz "", a tam nie masz odstępów.

0

To co mam zrobić żeby układ gwiazdek był dobry?

0

W ten sposób?

#include<stdio.h>
int main() {
printf("Ekran:\n***************\nTekst pierwszy<znak_nowej_lini>***************\n* *\n * *\n  * *\n   * *");
}
1

@Nikto0: pogłówkuj trochę, poeksperymentuj.

0

Próbowałam przy pomocy, ale mi nie wyszło ktoś pomoże?

\t
0

'\n' jest nowa linia ' ' jest spacja. Teraz polacz wszystko co tu przeczytales w jedno
" * \n";

0

Może ktoś napisać tutaj kod źródłowy, bo mi nie wychodzi.

1

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.

0

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

2

'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");
0

@Nikto0: Mechatronika na PWSZ

0

Dziękuję. już działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1