Ich komme nach SO als letzter Ausweg. Ich habe versucht, diesen Code für die letzten 2 Stunden zu debuggen. Wenn die Frage für eine andere SE-Website geeignet ist, sagen Sie es mir bitte vor dem Abstimmen.Reverse zwei Zahlen und erhalten die Umkehrung der Summe
Hier geht es:
#include <stdio.h>
#include<math.h>
int reverse(int n) {
int count = 0, r, i;
int k = (int)log(n * 1.0);
for(i = k; i >= 0; i--)
{
r = (n % 10);
n = (n/10);
count = count + (r * pow(10, k));
}
return count;
}
int main(void) {
int t;
scanf("%d", &t);
while(t--)
{
int m, n, res;
scanf("%d %d", &m, &n);
res = reverse(m) + reverse(n);
printf("%d", reverse(res));
}
return 0;
}
Mein Ziel ist es zwei Zahlen als Eingabe zu erhalten, so dass sie umkehren, fügen Sie die umgekehrten Zahlen und dann umgekehrt das Ergebnis als well.I, dies zu tun für ‚t‘ Test Fälle.
Das Problem: http://www.spoj.com/problems/ADDREV/
Haben Sie Fragen, wenn der Code nicht klar ist, fragen Sie mich bitte in den Kommentaren. Danke.
EDIT: Das Programm wird erfolgreich kompiliert. Ich bekomme immer eine vage Ausgabe. Angenommen, die zwei Nummern als Eingang 24 und 1 ist, erhalte ich eine Leistung von 699998. Wenn ich 21 versuchen und 1, I 399998.
Was ist das Problem mit dem Code, den Sie haben? Für einige Beispieleingabe, was ist die erwartete und tatsächliche Ausgabe? Erhalten Sie Buildfehler? Laufzeitfehler oder Abstürze? Etwas anderes? Und bitte nehmen Sie sich etwas Zeit (lesen Sie, wie Sie gute Fragen stellen können) (http://stackoverflow.com/help/how-to-ask). –
Sie können nicht angeben, was Ihr tatsächliches Problem ist. Zum Beispiel, hängt es damit zusammen, wie die Zahlen gelesen werden? Wenn Sie Ihren scanf betrachten, berücksichtigen Sie nicht Whitespace/newlines in der ersten Lese- und in jeder anderen Lese danach. –
@DavidHoelzer Die Verwendung des '"% d "' Formats beim Lesen der Eingabe mit 'scanf' (und Freunden) verwirft den führenden Leerraum. –