Hallo,
ich soll ein Programm in c schreiben welches Kreditkartennummern überprüft und ein Kreditinstitut zuweist.
Hier der Prüfalgorithmus:
Schritt 1: Verdoppeln Sie den Wert jeder geraden Stelle, beginnen Sie von rechts.
Schritt 2: Ergibt das Produkt einen Wert größer 9 , dann
addieren Sie die Ziffern (Bsp. aus 18 wird1+8 =9) zu einem neuen Wert.
Schritt 3: Die Kartennummer ist plausibel, wenn die Quersumme aller neuen Ziffernwerte
10,20,30,40,50,….. ergibt!
So weit zum ersten teil der Aufgabe. Bitte versteht mich nicht falsch ich möchte nicht das einer für mich die ganze Programmierung übernimmt sondern Hilfestellungen bei der schrittweisen Vorgehensweise gibt sodass ich es auch verstehe( habe leider bei einigen Vorlesungen gefehlt).
Um die Nummer zu Speichern benutze ich ein String.
.
Solange ich alle 20 Stellen fülle klappt es auch. Da es unterschiedliche längen von nummern gibt muss ich die eingegebene Nummer auf 20 Stellen normieren um von rechts anfangen zu können in gerade und ungerade Stellen zu unterscheiden. Aber genau das funktioniert nicht so wie ich es will. Da ich neu bin hoffe ich das alles soweit verständlich ist.
Hoffe jemand möchte mir helfen.
Gruß zuBlöd
edit:
OK hab die Lösung erstmal selber gefunden :
Das Programm ist noch lange nicht fertig. Werde aber erstmal selber weiter machen bei Problemen melde ich mich wieder.
ich soll ein Programm in c schreiben welches Kreditkartennummern überprüft und ein Kreditinstitut zuweist.
Hier der Prüfalgorithmus:
Schritt 1: Verdoppeln Sie den Wert jeder geraden Stelle, beginnen Sie von rechts.
Schritt 2: Ergibt das Produkt einen Wert größer 9 , dann
addieren Sie die Ziffern (Bsp. aus 18 wird1+8 =9) zu einem neuen Wert.
Schritt 3: Die Kartennummer ist plausibel, wenn die Quersumme aller neuen Ziffernwerte
10,20,30,40,50,….. ergibt!
So weit zum ersten teil der Aufgabe. Bitte versteht mich nicht falsch ich möchte nicht das einer für mich die ganze Programmierung übernimmt sondern Hilfestellungen bei der schrittweisen Vorgehensweise gibt sodass ich es auch verstehe( habe leider bei einigen Vorlesungen gefehlt).
Um die Nummer zu Speichern benutze ich ein String.
.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char Z[19], A[19]; //A[] ist für die eingabe; Z[) zum normieren auf 20Stellen
int i ;
gets (A);
Z[19-strlen(A)]='\0'; // versuch der normierung auf 20Stellen
strcat(Z,A);
for (i=0; i<=19;i++){ //überprüfung der eingabe
printf ("%c",A[i]);}
system("PAUSE");
return 0;
}
Hoffe jemand möchte mir helfen.
Gruß zuBlöd
edit:
OK hab die Lösung erstmal selber gefunden :
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char Z[]="00000000000000000000", A[20]; //A[] ist für die eingabe; Z[) zum normieren auf 20Stellen
int i,j ;
gets (A);
Z[20-strlen(A)]='\0'; // normierung auf 20Stellen
strcat(Z,A);
for (i=0; i<=20;i++){ //überprüfung der eingabe
printf ("%c",Z[i]);}
system("PAUSE");
return 0;
}