Kuinka teen c:llä peliin pistelaskurin, kun quickbasicissa se tehdään tyyliin:
a = 1 input "testi: ", test$ if test$ = "testi" then a = a + 1 end if if test$ = "test" then a = a - 1 end if
#include <stdio.h> #include <string.h> int pisteet=0; int main(void){ printf("Anna vaikka pisteesi: "); scanf("%i",pisteet); printf("Pisteet: %i",pisteet); }
Jotain tämmöistäkö tarkoitit?
Sen siis pitäisi lisätä oikeista vastauksista pisteen laskuriin niin, että pelin lopussa voidaan näyttää jotain statseja.
ps: Jostain syystä toi source ei toimi vaan valittaa Muistialueen ylitystä.
Tarkistus:
if (strcmp(kysymys, vastaus) == 0) { oikeat++; } else { vaarat++; } //Statsit printf("Oikeita vastauksia: %i",oikeat, "\n"); printf("Vääriä vastauksia: %i",vaarat, "\n");
Hatusta vedettyä kuten aina...
Tässä on alkuperäinen koodi C-kielisenä:
#include <stdio.h> #include <string.h> int main(void) { int a = 1; char test[20]; printf("testi: "); scanf("%s", test); if (strcmp(test, "testi") == 0) { a++; } if (strcmp(test, "test") == 0) { a--; } return 0; }
Kaikkia näitä asioita käsitellään opasalueella olevissa C-oppaissa.
juhaz kirjoitti:
Jostain syystä toi source ei toimi vaan valittaa Muistialueen ylitystä.
Johtuu varmaan siitä, että scanf-funktiolle annetaan virheellisesti muuttujan arvo sen muistiosoitteen (&pisteet) asemesta.
remontti-reiska kirjoitti:
Hatusta vedettyä kuten aina...
No joo, printf-funktiota ei käytetä ihan noin. :)
hmm... kuinkas mä pystyinkään näyttämään tuon luvun tekstin perässä? Itse laitoin komenno printf("%a",a); niin tulee vain teksti 0x1.7ff8ep-1000
Kokeiles näin:
printf("%i",a);
Näyttää oudolta kooderin silmiin, kun täällä tunnutaan käyttävän yleisesti tuota %i:tä muotoillessa integereitä merkkijonoon. Itse olen aina käyttänyt %d:tä.
Mutta %i on paljon loogisempi; integer.
Hmm... onkos sillä niin väliä? :)
Itte en käytä i:tä koska se on niin kapea merkki...
Aihe on jo aika vanha, joten et voi enää vastata siihen.