Druii
(Druii)
29 Styczeń 2013 11:12
#1
Witam
Ostatnio dostaliśmy ćwiczenie na lekcji które wypisywało wiek kur (od 1-24 miesięcy).
Oczywiście na końcu mila być tabelka gdzie wypisujemy wszystkie dane (w tym wiek)
Tutaj skrawek kodu:
void kura::wypisz_kure(int wiek[],int waga[], int jajka[],int c)
{
cout << "L.p | Gatunek | wiek | waga | jajka" << endl;
cout << "-----------------------------------------" << endl;
for(int i=0;i
{
cout << i+1 <<" | KURA | " << wiek[i]<< " | " << waga[i]<<" | " << jajka[i]<< endl;
}
}
wszystko działa poprawnie, ale…
kiedy wiek jest 2-cyfrowy przenosi kreskę (kolumny) w prawo, przez co tabelka nie jest równa.
Jak zrobić by zawsze kiedy wiek jest poniżej 10, dodawało mi 0 z przodu?
wiek to int, chciałbym żeby po jakiejś operacji przypisującej 0 z przodu, dalej pozostało int’em… (chyba że podczas wyświetlenia nie będzie to miało większego znaczenia)
Wszystko mi ładnie wyświetla, ale ten wiek aż razi po oczach, a chciałem udoskonalić to ćwiczenie wg. mojego uznania
grzelix
(Grzelix)
29 Styczeń 2013 11:32
#2
http://cpp0x.pl/kursy/Kurs-C++/Obsluga- … a-cout/323
width()
lub w nieco prostszy sposób korzystając z podstawowych instrukcji:
for(int i=0;i
{
cout << i+1 <<" | KURA | ";
if(wiek[i]<10)
{
cout << "0";
}
cout << wiek[i]<< " | " << waga[i]<<" | " << jajka[i]<< endl;
}
drobok
(Drobok)
29 Styczeń 2013 12:02
#3
Tylko dlaczego by nie użyć printf ?
void kura::wypisz_kure(int wiek[],int waga[], int jajka[],int c)
{
cout << "L.p | Gatunek | wiek | waga | jajka" << endl;
for(int i=0;i
printf("%3d|%15s|%5d|%5d|%5d",i+1,"kura",wiek[i],waga[i],jajka[i]);
}
Oczywiście ci na oko nie wyrównam, ale takie coś jest o wiele bardziej czytelne i nie trzeba mieszać spacjami / zerami przy zamianie elementów etc
Druii
(Druii)
29 Styczeń 2013 12:09
#4
Dzięki
czasem człowiek najprostrzego rozwiazania nie wymysli…
for(int i=0;i
{
cout << i+1 <<" | KURA | ";
if(wiek[i]<10)
{
cout << "0";
}
cout << wiek[i]<< " | " << waga[i]<<" | " << jajka[i]<< endl;
}
strzal w dziesiatke