Prioritäten bei arithmetischem Ausdruck selbst bestimmen



  • Hallo zusammen,

    habe folgenden Ausdruck:

    int rest=(i-1)/sqrt(n);
    int ind=rest*sqrt(n)+(j-1)/sqrt(n)+1;
    

    wenn ich das so ausrechnen lasse, gehts super. wenn ich das aber versuche zusammen zu fassen, nämlich so:

    int ind=((i-1)/sqrt(n))*sqrt(n)+(j-1)/sqrt(n)+1;
    

    dann klappts irgendwie nicht mehr. ich mein, ich weiß schon, punkt vor strich und kommutativität, aber das gilt da ja nicht so ganz, weils um ints geht. kann ich das irgendwie tricksen, dass das in einem ausdruck geht? an sich es ja wurscht, ich frag mehr aus interesse.

    viele grüße!

    Edit by c.rackwitz: [cpp] Tags sind was Feines



  • hmm, wo ich das grad so geschrieben hab und während dessen nochwas drüber nachgedacht hab, is mir schon eingefallen, wie es geht :). einfach den ausdruck, den ich vorher in ner extra variable hatte zuerst casten. falls ihr noch was hübscheres wisst, immer her damit :).

    int ind=(int)((i-1)/sqrt(n))*sqrt(n)+(j-1)/sqrt(n)+1;
    

    Edit by c.rackwitz: [cpp] Tags sind was Feines



  • bist du sicher, dass du nur ganzzahlen willst? dabei gehen dir die nachkommastellen verloren.

    immer wenn ein cast noetig ist, ist irgendwas nicht in ordnung. gib doch bitte ein minimalbeispiel mit testwerten an, das sich kompilieren laesst.


Anmelden zum Antworten