Terve.
harjoittelin tässä osoittimien käyttöä ja yritin tehdä ohjelmaa joka kysyy käyttäjältä kahta kokonaislukua käyttäen osoittimia ja tulostaa sitten niiden summan myös käyttäen osoittimia. Mikä mahtaa olla virheenä kun ohjelma ei toimi oikein, vaan antaa lukujen summaksi kokoajan ykkösen?
tässä on koodi:
#include<stdio.h>
#include<conio.h>
void main (void)
{
int a,b,summa;
int *aos,*bos,*sumos;
printf("\nAnna kaksi kok. lukua pilkulla erotettuna:");
scanf("%d,%d",&a,&b);
aos=&a;
bos=&b;
*sumos= *aos + *bos;
sumos=summa;
printf("Lukujen summa on %d",summa);
getch();
}
Aika ihme homma jos kääntäjä ei heittänyt varoitusta sijoituksistasi :)
Korjattuna koodisi näyttäisi tältä:
#include<stdio.h> #include<conio.h> void main (void) { int a,b,summa; int *aos,*bos,*sumos; printf("\nAnna kaksi kok. lukua pilkulla erotettuna:"); scanf("%d,%d",&a,&b); aos=&a; bos=&b; sumos = &summa; // sumos osoittaa summaan *sumos= *aos + *bos; printf("Lukujen summa on %d",summa); getch(); }
kiitos paljon.
Mihin tuossa "ohjelmassa" muka tarvitsee conio.h:ta? Eikö C:n standardikirjasto stdio.h riitä?
lainaus:
Mihin tuossa "ohjelmassa" muka tarvitsee conio.h:ta? Eikö C:n standardikirjasto stdio.h riitä?
Ei, conio.h:sta löytyy getch().
Outoa koska en ole koskaan includennut conio.h:ta testi C-ohjelmiini ja getch() toimii aivan mainiosti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.