03. marts 2007 - 11:57Der er
32 kommentarer og 1 løsning
far char til int
hvis jeg har 2 char variabler som skulle indeholde tallene 3 & 4 men istedet indeholder 51 og 52.. hvad gør jeg så? :S
altså jeg har en som hedder left og en der hedder right... hvis jeg laver en printf("left: %c %d right %c %d", left,left,right,right); så skriver den left: 3 51 right: 4 52
og de tal skal så regnes ud... men hvis jeg bare skriver: calc = left * right; printf("calc: %c %d", calc, calc);
så skriver den gange:\ 2652
dvs den gange 51*52 men det er ikke det jeg skal bruge.. den skulle gerne skrive 12...
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
jeg har fået det til at virke nu ved at lave 2 variabler mere (left1, right1) og skrive: left1 = left - '0'; right1 = right - '0'; men er der ikke en anden måde og gøre det på for ser lidt rodet ud og have de stående?
det duer ikke... kan man evt udregne dem i en char? altså lige nu har jeg jo calc til at være en int.... men efter den har regnet left * right ud, skal jeg bruge den som en char fordi resultatet skal puttes ind i en char string
altså svaret bliver jo 12 hvis mange udskriver calc som %d men hvis man skriver den som %c så giver den et symbol... og jeg kan jo ikke sige symbol + '0'... nej den skal bare til en enkelt char, da den bagefter bliver lagt ind i toppen af stacken...
altså hvis man siger calc + '0' giver det jo 60... og 60 i ascii tabellen er < men der findes jo heller ikke noget ascii værdi for 2cifrede tal? så man må skulle gøre det på en anden måde...
kommer 1 så ikke til at være buf[0] og 2til at være buf[1] og 3 til at være buf[2]? hvordan kan den så kende forskel på om det kun er et enkelt tal eller et flercifret tal?
hvis vi siger vi vil udregne 3*4-2 giver det i postfix 34*2-... jeg har nu fået den til at smide 3 og 4 ind i stacken og bagefter ud på højre og venstre side af * tegnet... det giver så 12 som skal ind i stacken igen... men i stacken er der jo også et 2-tal dvs når jeg smider 12 ind i stacken vil 2 være stack[0] og 12 vil blive delt på stack[1] og stack [2]?
det undre mig nemlig lidt hvordan den kan holde styr på et regnestykke med flercifrede tal... f.eks. 23*65-21 det må jo hedde 2365*21- i postfix... hvordan kan den vide om det er 23 * 65 og ikke 2 * 365 eller 236 * 5?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.