Zarovnání matice – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zarovnání matice – C / C++ – Fórum – Programujte.comZarovnání matice – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Aleš
~ Anonymní uživatel
98 příspěvků
14. 3. 2015   #1
-
0
-

Čauky,

poradil by mi prosim nekdo jak zarovnat číselne prvky tak, aby sloupečky sedely pod sebou? Momentálně to vypadá jako na přiloženém obrázku. 

Učím se s c++ teprv a nevim jak to vyřešit. Dřív v pascalu jsem to dělal pomoci dvojtečky. 

Pascal:

for i:=1 to n do
         begin
         for j:=1 to n do write(Sachovnice[i,j]:4);

         writeln(f);
         end;

C++:

for(x=1;x<=ri;x++) {
        for(y=1;y<=rj;y++) {
            printf("%d  ",Sachovnice[x][y]);}
        printf("\n");}}

Připojen obrázek.

Nahlásit jako SPAM
IP: 90.181.127.–
Reklama
Reklama
KIIV+42
God of flame
14. 3. 2015   #2
-
0
-
Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
14. 3. 2015   #3
-
0
-

Případně pokud bys chtěl použít C++ cout, je možné šířku sloupce nastavit pomocí setw.

Nahlásit jako SPAM
IP: 46.39.172.–
Inject all the dependencies!
PiranhaGreg0
Stálý člen
15. 3. 2015   #4
-
0
-

Případně pokud člověk vůbec neví, co za čísla mu tam přijde... 

#include <iostream>
#include <iomanip>

using namespace std;

const int n = 8;

int matrix[n][n] = {
	{ 1, 34, 3, 562, 18, 426, 12, 9 },
	{ 12, 3, 9, 15, 64, 8, 46, 0 },
	{ 9, 5, 4, 8, 2, 0, 0, 1 },
	{ 412, 5, 9, 13, 6, 8, 8, 8 },
	{ 1, 1, 3, 2, -3, 5, 8, 9},
	{ 0, -1, 0, 1, 0, 1, 0, 1 },
	{ 512, 12, 1, 9, 86, 13, 4, 5 },
	{ 0, 0, 0, 0, 9, -9, 9, 9 }
};

int numOfDigits(int x) {
	if (x == 0) return 1;
	return (int)log10(x) + (x > 0) + 1;
}

int main(void) {
	int tmp[n] = { 0 };

	for (int x = 0; x < n; x++) {
		int max = matrix[0][x];

		for (int y = 0; y < n; y++)
			if (matrix[y][x] > max)
				max = matrix[y][x];

		tmp[x] = numOfDigits(max);
	}

	cout << left;

	for (int y = 0; y < n; y++) {
		for (int x = 0; x < n; x++)
			cout << setw(tmp[x]) << matrix[y][x];

		cout << endl;
	}

	getchar();
	return 0;
}
Nahlásit jako SPAM
IP: 109.81.210.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

Podobná vlákna

Zarovnání do leva — založil Martin

Formulář-zarovnání — založil spartan13

Zarovnání na střed — založil UrbiCZ

Zarovnani v JPanelu — založil Hurys

Zarovnání ve wxPython — založil Neuge

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý