Re: A89: C problem...
[Prev][Next][Index][Thread]
Re: A89: C problem...
Here, I changed your code and fixed it. It -should- work now.
--robin
JHill8075@aol.com wrote:
>
> I'm gaving a problem with my C program (problamatic code is below). I'm
> working on the highscore and I decided to allow the user to put his/her
> initials in. The program displays the initials while the user is typing them
> in, but then when you play it the second time it's supposed to show you who
> has the highscore and what their initials are, but it only displays their
> first initial. I consulted another C programmer for the 89 ,and we
> re-arranged and re-wrote the code in different ways (including changing it
> from a char variable to an int variable which it is now), but the bug(?) is
> still there. Can anyone figure this out? Thanks a lot.
>
> Josh
> <A HREF="http://pa.ticalc.org">Programmers Anonymous</A> Member
>
> void end(int score,int *highscore,char *initials)
This has to be a char*, not an int*. If you make it int, it really sucks :/
> {
>
> int count,key=0,x=0;
> clrscr();
> printf("Game Over");
> printf("\nYour score is %d.",score);
> if(score<=*highscore)
> printf("\nHighscore is %d by %s",*highscore,initials);
You need to use %s to display a string. %c displays only a character.
Also, i changed *initials to just initials. THis is because %s expects a
character pointer, not a character.
>
> if(score>*highscore)
> {
> printf("\nOld High Score was %d",*highscore);
> *highscore=score;
> printf("\nNew High Score of %d!",score);
>
> printf("\nEnter your initials.\n");
> for(count=0;count<=2;count++)
> {
> GKeyFlush();
> while(key==0)
> {
> key=getchar();
> ST_busy(ST_IDLE);
> }
> *initials=key;
>
> initials++;
> key=0;
> }
> }
> GKeyFlush();
> GKeyIn(NULL,0);
> clrscr();
> return;
> }
> //...more code here...
> //in _main
> static int initials[3]={0,0,0,NULL};
> //...rest of program
there you go, that should work ;)
Follow-Ups:
References: