Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Der vierte Teil der ISBN ist immer einstellig und überprüft die Richtigkeit der anderen Nummern. Weiß jemand zufällig, wie man das angehen könnte?

Mein Ansatz:

cin>>isbn[1]>>isbn[2]>>isbn[3]>>isbn[4]>>isbn[5];

cin>>isbn[6]>>isbn[7]>>isbn[8]>>isbn[9]>>isbn[10];

a=isbn[1]*10;

b=isbn[2]*9;

c=isbn[3]*8;

d=isbn[4]*7;

e=isbn[5]*6;

f=isbn[6]*5;

g=isbn[7]*4;

h=isbn[8]*3;

i=isbn[9]*2;

j

/*Die Summe wird auf nächsthöhere durch 11 teilbare Zahl ergänzt

und die Differenz der beiden Zahlen ist die Prüfziffer.*/

z=a+b+c+d+e+f+g+h+i;

if (j== "?")

{ printf("ISBN ist korrekt.");}

else

{ printf("ISBN ist nicht korrekt.");}:confused:

Danke...

Geschrieben
Original geschrieben von Mr.Kidney

Der vierte Teil der ISBN ist immer einstellig und überprüft die Richtigkeit der anderen Nummern. Weiß jemand zufällig, wie man das angehen könnte?

Mein Ansatz:

cin>>isbn[1]>>isbn[2]>>isbn[3]>>isbn[4]>>isbn[5];

cin>>isbn[6]>>isbn[7]>>isbn[8]>>isbn[9]>>isbn[10];

a=isbn[1]*10;

b=isbn[2]*9;

c=isbn[3]*8;

d=isbn[4]*7;

e=isbn[5]*6;

f=isbn[6]*5;

g=isbn[7]*4;

h=isbn[8]*3;

i=isbn[9]*2;

j

/*Die Summe wird auf nächsthöhere durch 11 teilbare Zahl ergänzt

und die Differenz der beiden Zahlen ist die Prüfziffer.*/

z=a+b+c+d+e+f+g+h+i;

if (j== "?")

{ printf("ISBN ist korrekt.");}

else

{ printf("ISBN ist nicht korrekt.");}:confused:

Danke...

kannst du einbiesien mehr dein Problem beschreiben ?!

Geschrieben

Das Problem besteht darin, dass die letzte Stelle auch ein "X" sein kann.

Wenn ich das "X" als "char-Variable" deklariere, rechnet er nicht mehr, sondern zeigt Fehler, dass ich "char" nicht mit "int" verbinden kann.

Wie bekomme ich das Programm dazu, dass er das "X" in die Zahl "10" umwandelt?

Mein Programm sieht inzwischen so aus:

int a,b,c,d,e,f,g,h,i,j,y,z;

int knr;

cin>>a>>b>>c>>d>>e>>f>>g>>h>>i;

cin>>knr; //knr ist das letzte Zeichen

a*=10;b*=9;c*=8;d*=7;e*=6;f*=5;g*=4;h*=3;i*=2;

z=a+b+c+d+e+f+g+h+i;

j=z;

for (;j%11!=0;)

{ j=++j; }

y=j-z;

printf("\nSumme ist: %3d ",z);

printf("\nDie durch 11 teilbare Zahl ist: %3d ",j);

printf("\nKontrollnummer ist: %3d ",y);

if (knr==y)

printf("\n\nISBN ist korrekt.");

else

printf("\n\nISBN ist nicht korrekt.");

Geschrieben

Danke Euch.

Ich habs rausgefunden:

int main()

{

int a,b,c,d,e,f,g,h,i,j,y,z;

char knrc;

int knri;

cin>>a>>b>>c>>d>>e>>f>>g>>h>>i;

cin>>knrc;

a*=10;

b*=9;

c*=8;

d*=7;

e*=6;

f*=5;

g*=4;

h*=3;

i*=2;

z=a+b+c+d+e+f+g+h+i;

j=z;

for (;j%11!=0 ; )

{

j=++j;

}

y=j-z;

printf("\nSumme ist: %3d ",z);

printf("\nDie durch 11 teilbare Zahl ist: %3d ",j);

printf("\nErrechnete Kontrollnummer ist: %3d ",y);

printf("\nEingegebene Kontrollnummer ist: %c \n",knrc);

if ((knrc == 'X') || (knrc == 'x'))

knri = 10;

else

knri = knrc-48;

if(y == knri)

printf("\n\nISBN ist korrekt (a).");

else

printf("\n\nISBN ist nicht korrekt (B).");

:marine

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...