I works. But it doesn't work the way you think it does.
As a simple workaround you may use a string instead of char as input for
scanf
, e.g.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char buf[0x100];
do{
printf("insert y or Y to repeat");
fflush(stdout);
while (scanf("%s",buf) != 1);
}while(buf[0]=='y'|| buf[0]=='Y');
}
[Update]
try this one:
#include <stdio.h>
#include <stdlib.h>
int scan_frac(int *num,int *denom);
int main(void){
int num1,denom1;
char buf[0x100];
do{
if ( scan_frac(&num1,&denom1) == 2)
{
if ( denom1 != 0)
{
printf("%d/%d = %g\n", num1, denom1, ((double)num1)/denom1);
fflush(stdout);
}
}
printf("insert (y) to do another division\n");
fflush(stdout);
scanf("%s", buf);
}while(buf[0]=='y'||buf[0]=='Y');
return 0;
}
int scan_frac(int *num,int *denom){
int values;
int n,dn;
printf("insert numerator and denominator (use blank as separator): ");
fflush(stdout);
values = scanf("%d %d",&n,&dn);
*num=n;
*denom=dn;
return values;
}
[/Update]