Code:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
char sortdef(char kzahl[5])
{
char gzahl[5],temp;
for (int i=1;i<=3;i++) {
for (int j=i+1;j<=4;j++) {
if(kzahl[j-1] < kzahl[i-1]) {
temp=kzahl[i-1];
kzahl[i-1]=kzahl[j-1];
kzahl[j-1]=temp;
}
}
}
for(i=1;i<=4;i++)
gzahl[4-i]=kzahl[i-1];
return atoi(gzahl)-atoi(kzahl);
}
void main(void)
{
char azahl[5];
cout << "Gebe die gewuenschte Zahl zum testen ein. ";
cin >> azahl;
while(azahl != "6174"){
azahl=sortdef(azahl);
cout << azahl << "\n";
}
}
Hier erstmal der Code, ich habe die 2 problematischen Zeilen makiert.
Es ist mein 1. C++ Programm und wnen ich sonst irgendwas nichgt gut gemacht habe, könnt ihr das auch immer gerne schreiben

Zum Problem ich habe ein Arraychar wo eine 4- Stellige Zahl drinne stehtdiese sortiere ich in der Funktion einmal aufsteigend und einmal absteigend.
Dann ziehe ich die Aufsteigende(kleine) von der Absteigenden(großen) ab.
Die differenz möchte ich dann(auch als char array) zurückgeben.
Das ganze ist eine Zahlenspielerei von einem Herrn Kaprekar.
Alle 4- Stelligen Zahlen (auch 0001) die nicht gleich sind ergeben nach diesem Muster (Sortierung- differenz) nach maximal 7 Schritten 6174
So ich wäre froh wnen mir da jemand behilflich sein könnte

Achso ich hab noch was vergessen, der Rückgabewert ist natürlich auch noch falsch, der ist integer und nicht char...
Aber denke das hättet ihr auch so gesehen
