Strona 1 z 1

[C++] Wypisywanie n wykrzykników

: 17 gru 2011, o 22:03
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ę!

[C++] Wypisywanie n wykrzykników

: 17 gru 2011, o 22:28
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.

[C++] Wypisywanie n wykrzykników

: 17 gru 2011, o 23:35
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("   ");}}

[C++] Wypisywanie n wykrzykników

: 18 gru 2011, o 12:42
autor: Afish
Xitami, to nie jest C++.

[C++] Wypisywanie n wykrzykników

: 18 gru 2011, o 14:46
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;}
        

[C++] Wypisywanie n wykrzykników

: 19 gru 2011, o 22:37
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;
}

[C++] Wypisywanie n wykrzykników

: 19 gru 2011, o 22:58
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;
}

[C++] Wypisywanie n wykrzykników

: 3 sty 2012, o 10:11
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;
}