C Formatierung

Hallo ich habe folgendes Problem und zwar möchte ich mir eine Tabelle in dieser Art ausgeben lassen.

Jahr Kapital am 01.01 Zinsen Kapital am 31.12
==================================
1 1000.00 35.00 1035.00
2 1035.00 36.22 1071.00
.
.
.


Das ganze habe ich so realisiert :
Code:
#include <stdio.h>
int main ()
{
/* Variablen Eingabe*/	
double anfangskapital=0,endkapital=0,zinssatz=0; 
/* Hilfsvariabeln */
int i=1; /*Jahr */
double kapital_anfang=0, kapital_ende=0, zinsen=0; /*Kapital für 01.01 & 31.12


/* Werte einlesen */
printf("Anfangskapital\n:");
scanf("%lf", &anfangskapital);
printf("Endkapital\n:");
scanf("%lf", &endkapital);
printf("Zinssatz\n:");
scanf("%lf", &zinssatz);

/*Zuweisung von Kapital für erste Zeile */
kapital_anfang=anfangskapital;


printf("Jahr       Kapital am 01.01        Zinsen         Kapital am 31.12\n");
printf("==================================================================");
	
	while(kapital_anfang<endkapital)
	{
		/* Ausgabe Jahr */
		printf("%i", i);
		printf("\t");
		
		/* Ausgabe Kapital 01.01 */
		printf("%.2lf", kapital_anfang);
		printf("\t");
		
		/* Ausgabe Zinsen */
		/*Zinsen berechnen */
		zinsen = (kapital_anfang * zinssatz) / 100;
		printf("%.2lf", zinsen);
		printf("\t");
		
		/* Ausgabe Kapital 31.12 */
		kapital_ende = kapital_anfang + zinsen;
		printf("%.2lf", kapital_ende);
		printf("/n");
		
		/* Berechnungen*/
			
		/*Jahr erhöhen */
		i++;
	
		/*Neues Kapital setzen*/
		kapital_anfang = kapital_ende;
	}

return 0; 	
}

Wenn ich das kleine Programm ausführe, zerhaut es immer die Formatierung. Ich konnte keine Formatierungshilfen für C im Netz finden.
Gibts da irgendwelche sachen mit Linksbündig , Rechtsbündig oder so, um mein Problem zu lösen?

LG, weau
 
Was genau klappt denn nicht? Wie du schon richtig erkannt hast kannst du beim printf eine gewisse Breite angeben, versuch es mal mit fixen Maximalbreiten. Z.B. so:

Code:
printf("%3d", i);
printf("%6.2lf", kapital_anfang);
printf("%4.2lf", zinsen);
printf("%6.2lf", kapital_ende);

EDIT:

Ich hab deine Fehler gefunden:

Code:
Zeile 24 : \n hinzufügen

printf("==================================================================\n");

Zeile 45 : \n nicht /n

printf("\n");

Ausgabe:

Code:
Jahr       Kapital am 01.01        Zinsen         Kapital am 31.12
==================================================================
1       3000.00 360.00  3360.00
2       3360.00 403.20  3763.20
3       3763.20 451.58  4214.78
 
"Der Schwerpunkt der Aufgabe liegt in einer vernünftigen Formatierung der Ausgabe"

Code:
#include <stdio.h>
int main ()
{
/* Variablen Eingabe*/	
double anfangskapital=0,endkapital=0,zinssatz=0; 
/* Hilfsvariabeln */
int i=1; /*Jahr */
double kapital_anfang=0, kapital_ende=0, zinsen=0; /*Kapital für 01.01 & 31.12


/* Werte einlesen */
printf("Anfangskapital\n:");
scanf("%lf", &anfangskapital);
printf("Endkapital\n:");
scanf("%lf", &endkapital);
printf("Zinssatz\n:");
scanf("%lf", &zinssatz);

/*Zuweisung von Kapital für erste Zeile */
kapital_anfang=anfangskapital;


printf("Jahr       Kapital am 01.01     Zinsen       Kapital am 31.12\n");
printf("=============================================================\n");
	
	while(kapital_anfang<endkapital)
	{
		/* Ausgabe Jahr */
		printf("%i", i);
		printf("\t\t");
		
		/* Ausgabe Kapital 01.01 */
		printf("%.2lf", kapital_anfang);
		printf("\t\t");
		
		/* Ausgabe Zinsen */
		/*Zinsen berechnen */
		zinsen = (kapital_anfang * zinssatz) / 100;
		printf("%.2lf", zinsen);
		printf("\t\t");
		
		/* Ausgabe Kapital 31.12 */
		kapital_ende = kapital_anfang + zinsen;
		printf("%.2lf", kapital_ende);
		printf("\n");
		
		/* Berechnungen*/
			
		/*Jahr erhöhen */
		i++;
	
		/*Neues Kapital setzen*/
		kapital_anfang = kapital_ende;
	}

return 0; 	
}

Die Aufgabe sollte damit doch gelöst sein oder gibt es noch vorteilhaftere Formatierungs möglichkeiten?
 
Ich dachte zuerst es würde daran liegen, dass du .2lf anstatt 4.2lf oder so benutzt. Dann habe ich aber die eigentliche Ursache gefunde, wie ich im Edit geschrieben habe. Dh wenn du die 2 Fehler verbessert ist die Aufgabe effektiv gelöst.
 
Zurück
Oben