[C++] Wypisywanie n wykrzykników

frrodo
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 17 gru 2011, o 21:47
Płeć: Mężczyzna
Lokalizacja: podkarpacie

[C++] Wypisywanie n wykrzykników

Post autor: frrodo »

Bardzo proszę o pomoc w rozwiązaniu tego zadania! Muszę go oddać w przyszłym tygodniu!
Na ćwiczeniach proste programy jakoś mi szły, a z tym jakoś nie potrafię sobie poradzić.
Treść : wyprowadzić na ekran \(\displaystyle{ n}\) wykrzykników tak, aby zaczynając od \(\displaystyle{ n}\) wykrzykników w pierwszym rzędzie, w \(\displaystyle{ n}\)-tym rzędzie uzyskać jeden wykrzyknik.
Zacząłem pisać ten program ale nie do końca działał poprawnie więc wszystko skasowałem z nerwów.
Mam nadzieję,ze ktoś pomoże.Z góry dziękuję!
Ostatnio zmieniony 18 gru 2011, o 12:39 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Nieczytelny zapis - brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[C++] Wypisywanie n wykrzykników

Post autor: norwimaj »

Jak przeczytałem treść, to od razu sobie zamarzyłem, żeby taki program mieć. A skoro napisałem, to mogę wkleić, coby inni też mieli uciechę z oglądania tego imponującego skupiska wykrzykników.

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main(){
  int n;
  cin >> n;
  char bufor[n+2];
  for (int i=0; i<n; i++) bufor[i]='!';
  bufor[n]='\n';
  bufor[n+1]=0;
  for (int i=0; i<n; i++) cout << (bufor+i);
  return 0;
}
Być może da się to napisać lepiej. Tego nie wiem, bo nie jestem informatykiem. U mnie działa zadowalająco.
Xitami

[C++] Wypisywanie n wykrzykników

Post autor: Xitami »

Kod: Zaznacz cały

main(O41,O4l){if(O4l
){scanf("%d", &O41);
while(O41--)main(O41
+'/'/'/',!O4l);}else
{while(O41--)putchar
(041);puts("   ");}}
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Wypisywanie n wykrzykników

Post autor: Afish »

Xitami, to nie jest C++.
Xitami

[C++] Wypisywanie n wykrzykników

Post autor: Xitami »

to teraz wykrzyknik w C++
jedna zmienna, jedna pętelka

Kod: Zaznacz cały

 
 
      #include
     <iostream>
      #include
      <iomanip>
        using 
      namespace 
      std;  int 
      main( ) {
      int O41 ;
      cin>>O41;
      while(O41
      ) cout << 
      setfill ( 
      char(041)
      )<< setw(
      O41--) <<
      char(041)
       <<char(
  
  
        012);
       return 
         0;}
        
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[C++] Wypisywanie n wykrzykników

Post autor: soku11 »

@up:
1. U mnie nie da się łamać include na dwie linie :/
2. W C++ używa się rzutowania w stylu C++, a nie C (czyt. static_cast)
3. W normalnych aplikacjach nie używa się magicznych liczb w stylu 041. Nie wspominając już o kodzie ASCII. Takie zastępowanie liczby znakiem jest zależne od platformy.
4. Dlaczego używasz samego kodu CR (ponownie - ASCII)? Pod systemami windows znak nowej linii to CR LF. Ponownie uzależniasz się od platformy.
5. Nie wiem co ma na celu używanie takiego fikuśnego kodu...

Ludzka wersja poprzedniego:

Kod: Zaznacz cały

#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;

int main()
{
	static const char FILL = '!';

	int n;
	cin >> n;
	while(n > 0)
	{
		cout << setfill(FILL) << setw(n) << FILL << '\n';
		--n;
	}

	return EXIT_SUCCESS;
}
Xitami

[C++] Wypisywanie n wykrzykników

Post autor: Xitami »

'\n' czy to jest jeden znak czy wiele?

-- 20 grudnia 2011, 09:53 --

jeszcze jedna wersja C++

Kod: Zaznacz cały

#include <iostream>
using namespace std;

int main() {
	int O1, Ol;
	cin >> O1;
	for( Ol = O1 * (O1 + 01) / (01+01); Ol > !O1; ) {
		cout << '!'; 
		if( --Ol==O1 * (O1 - 01) / (O1/O1+01) ) {
			O1--; cout << endl; }
	}
	return O1;
}
frrodo
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 17 gru 2011, o 21:47
Płeć: Mężczyzna
Lokalizacja: podkarpacie

[C++] Wypisywanie n wykrzykników

Post autor: frrodo »

pięknie wszystkim dziękuję za pomoc! Program działa:)
dopisałem jedynie komunikat "proszę podać ilość wykrzykników w pierwszym wierszu" w celach estetycznych. Jeszcze raz wielkie dzięki!

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{int n;
 cout<<"podaj ilosc wykrzyknikow w pierwszym wierszu:"<< endl;
  cin >> n;
  char bufor[n+2];
  for (int i=0; i<n; i++) bufor[i]='!';
  bufor[n]='\n';
  bufor[n+1]=0;
  for (int i=0; i<n; i++) cout << (bufor+i);
	system("pause");
	return 0;
}
Ostatnio zmieniony 3 sty 2012, o 10:37 przez Afish, łącznie zmieniany 1 raz.
Powód: Kod umieszczaj w tagach code.
ODPOWIEDZ