Problem beim umsetzen eines programms
-
hi
hab folgendes problem un zwar habe ich eine tabelle mit 4 zeilen und 21 spalten, die mit char festgelegt is un somite jeder buchstabe seinen eigene spalte braucht. nun muss ich aba in diesem programm alles zahlen auf den selben stand bringen zb 920 auf 00920.
soweit hab ich mein programm bereits un muss es um die funktion oben erweitern#include <iostream.h> #include <conio.h> int main() { char Tab[4][21]={ {'5','2','3','4','7',',','1','1','8','0',',','L',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','1','1','8','0',',','R',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','9','2','0',',','O',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','9','2','0',',','U',',','7','6','5',',','3','2',';'}, }; char Tab1[4][21]; int i, j; for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { cout<<Tab[i][j]; } cout<<endl; } cout<<endl; for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { if(Tab[i][j]==',') { Tab[i][j]='-'; } if(Tab[i][j]==';') { Tab[i][j]='+'; } } } for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { Tab1[i][j]=Tab[i][j]; cout<<Tab1[i][j]; } cout<<endl; } return 0; }
-
Und jetzt bitte das Ganze auf Deutsch

(was hast du vor und wo hapert es? und was soll dieses char-Array überhaupt darstellen?)
-
ich hab folgende tabelle vorgegeben:
52347, 1180, L, 765, 32;
52347, 1180, R, 765, 32;
52347, 920, O, 765, 32;
52347, 920, U, 765, 32;
und ich muss daraus die folgende tabelle machen:
52347- 01180- l- 765- 32+
52347- 01180- r- 765- 32+
52347- 00920- o- 765- 32+
52347- 00920- u- 765- 32+
die erste tabelle muss ich halt in ein programm umwandeln un die 2. tabelle muss das programm dann errechen oder erarbeiten un dann muss es die beiden tabellen ausgeben.
-
Vielleicht solltest du jede Tabellenzeile zu einem struct zusammenfassen - beim Einlesen nutzt du das Komma als Trennzeichen, beim Ausgeben schreibst du - Zeichen zwischen die einzelnen Werte (und sicherst mit setw() und setfill(), daß die Werte korrekt ausgerichtet werden).
-
wie verwende ich denn setfill oda wie funktioniert dat genau hab damit noch nie gearbeitet

-
cout<<setw(5)/*Ausgabe mit 5 Zeichen*/ <<sefill('0')/*Lücken mit 0 auffüllen*/ <<tabelle[i].spalte2;
-
oki die nullen hab ich jetzt drin nur tolower funzt jetzt irgendwie net...
#include <iostream.h> #include <conio.h> #include <iomanip.h> #include <algorithm> using namespace std; int main() { char Tab[4][21]={ {'5','2','3','4','7',',','1','1','8','0',',','L',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','1','1','8','0',',','R',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','9','2','0',',','O',',','7','6','5',',','3','2',';'}, {'5','2','3','4','7',',','9','2','0',',','U',',','7','6','5',',','3','2',';'}, }; char Tab1[4][21]; int i, j; for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { cout<<Tab[i][j]; } cout<<endl; } cout<<endl; for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { if(Tab[i][j]==',') { Tab[i][j]='-'; } if(Tab[i][j]==';') { Tab[i][j]='+'; } } } for(i=0;i<=3;i++) { for(j=0;j<=20;j++) { Tab1[i][j]=Tab[i][j]; cout<<Tab1[i][j]; if(j==5) { cout<<setw(2)<<setfill('0'); } if(((i==2) && (j==5)) || ((i==3) && (j==5))) { cout<<setw(3)<<setfill('0'); } if(j==13) { Tab[i][j]=tolower(Tab[i][j]); } } cout<<endl; } return 0; }PS: aufgabenstellung schreibt vor das die erste tabelle in nem zweidimensinalen char-feld vorgegeben ist
-
Wenn du nicht unbedingt darauf angewiesen bist, schmeiß dieses char[]-Array in die Tonne und strukturier' deine Daten vernünftig:
struct zeile { int spalte1,spalte2; char spalte3; int spalte4,spalte5; }; ... zeile Tab[4]= { {52347,1180,'L',765,32}, ... }Damit lässt es sich viel leichter arbeiten

-
jo leider schreibt die aufgabenstellung nen char array vor ...
