Strings addieren?



  • sorry aber dieses *s sagt mir atm noch gar nix und kann damit auch recht wenig anfangen 😞



  • int main() {
    
    char ean[13];
    int i ;
    int sum=0;
    int code=0;
    
    gets(ean);
    printf("Dein eingegebener EAN Code ist %s\n",ean);
    
    for(i=0;i<13;i++)
    sum=sum+ean[i];
    printf("%d",sum);
    
    system("PAUSE");
    return 0;
    }
    

    Habs jetzt mal so aber die Summe gibt ein übelsten Müll raus 😡



  • Szimo schrieb:

    sorry aber dieses *s sagt mir atm noch gar nix und kann damit auch recht wenig anfangen

    das ist ein 'char-pointer', der muss auf die anfangsadresse des strings zeigen. probier mal: printf ("%d\n", add_digits ("123456")); <-- sollte 26 rauskommen.
    🙂



  • ;fricky schrieb:

    printf ("%d\n", add_digits ("123456")); <-- sollte 26 rauskommen.
    🙂

    26? Ja, in Bizarro-World vielleicht... 😃



  • Deine Variante würde so modifiziert funktionieren:

    for(i=0;i<13;i++) {
    	if(ean[i]==0) break;
    	sum=sum+(ean[i]-'0');
    }
    

    Ist vielleicht verständlicher für dich als fricky's Variante. Aber früher oder später musst du dich mal mit Pointern (das böse 😉 auseinandersetzen.



  • _matze schrieb:

    ;fricky schrieb:

    printf ("%d\n", add_digits ("123456")); <-- sollte 26 rauskommen.
    🙂

    26? Ja, in Bizarro-World vielleicht...

    nee, funzt. ich hab's gerade ausprobiert.
    🙂



  • ;fricky schrieb:

    _matze schrieb:

    ;fricky schrieb:

    printf ("%d\n", add_digits ("123456")); <-- sollte 26 rauskommen.
    🙂

    26? Ja, in Bizarro-World vielleicht...

    nee, funzt. ich hab's gerade ausprobiert.
    🙂

    Er hat darauf angespielt, dass 1+2+3+4+5+6, nicht 26 sondern 21 sind.



  • ;fricky schrieb:

    _matze schrieb:

    ;fricky schrieb:

    printf ("%d\n", add_digits ("123456")); <-- sollte 26 rauskommen.
    🙂

    26? Ja, in Bizarro-World vielleicht...

    nee, funzt. ich hab's gerade ausprobiert.
    🙂

    Das bezweifle ich nicht, aber 1+2+3+4+5+6 = 21. 🤡



  • sunny31Bahadoorifar schrieb:

    Er hat darauf angespielt, dass 1+2+3+4+5+6, nicht 26 sondern 21 sind.

    aber fast.
    🙂



  • ;fricky schrieb:

    sunny31Bahadoorifar schrieb:

    Er hat darauf angespielt, dass 1+2+3+4+5+6, nicht 26 sondern 21 sind.

    aber fast.
    🙂

    Na ja, meine Programme tun auch immer nur fast das, was sie sollen, insofern akzeptiere ich das mal so. 😃 😉


Anmelden zum Antworten