[C] Piramida z liter

miszczyk
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 14 lis 2010, o 21:00
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy

[C] Piramida z liter

Post autor: miszczyk »

Hej ho, tak jak ostatnio mam problem, i liczę na pomoc, gdyż wstyd sie przyznac ale po 3h walki nie mam już siły nad tym myśleć.

Kod: Zaznacz cały


#include "stdafx.h"
#include<stdio.h>

int main(void) 

{
  char literka;
  int rzad;
  int granica;
  int granica2;
  int cos = 1;
  int odstep;
  printf("Podaj literke: ");
  scanf("%c", &literka);
	for(rzad = 0 ; rzad <= literka - 65 ; rzad ++)
	{
		for(odstep = 0; odstep <= (literka - 65) - rzad; odstep++)
		{
		   printf(" ");
		}
				for(granica2 = 'A'; granica2 <= literka, granica2 <= 65 + rzad; granica2 ++)
						printf("%c", granica2);
						
							for(granica = literka ; granica >= literka - rzad; granica--) 
							printf("%c", granica);
					        
						    
				        
				
			

					printf("\n");
    }   
			getchar();
			getchar();
		return 0;
}
Moim zadaniem jest wydrukować piramidkę:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
Gdzie wzór kończy się na wpisanym przez użytkownika znaku ( w tym przypadku E).

Program drukuje, ale w postaci:
AG
ABGF
ABCGFE
etc
Moje pytanie:
Co wklepac w ostatniej petli aby wpisywalo litery w dobrej kolejności, oraz jak zastąpić pętle z "granica2 = 'A'", żeby dalej działała, ale też nie przypisywało konkretnego znaku :(.

Z góry dzięki za odpowiedzi!
Kartezjusz
Użytkownik
Użytkownik
Posty: 7330
Rejestracja: 14 lut 2008, o 08:31
Płeć: Mężczyzna
Lokalizacja: Z Bielskia-Białej
Podziękował: 6 razy
Pomógł: 961 razy

[C] Piramida z liter

Post autor: Kartezjusz »

Ja pisałem w C++ i mogą być małe nieporozumienia
1. "%c" ma służyć zcentrowaniu piraminy?
2.Co oznacza "literka-65" gwarancja dużych liter?
3.Tak Ci drukuje po wczytaniu "E"?
miszczyk
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 14 lis 2010, o 21:00
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy

[C] Piramida z liter

Post autor: miszczyk »

1. %c ma wczytywać pojedyńczy znak, który potem jest zwiększany / zmniejszany przy obrotach pętli.
2. W kodzie ASCII 65 to A, 66 to B , etc, odejmując np od E 65, to tak jakbym odjął od 69 - 65 , czyli 4 , przy zwiększaniu wtedy np rzędu, robi tylko 5 obrotów ( czyli tyle ile potrzebuje). Jak można jakos łatwiej to słucham ;].

3. Tak mi drukuje po wpisaniu G. Dla E jest
AE
ABED
ABCEDC
ABCDEDCB
ABCDEEDCBA
ODPOWIEDZ