#include<stdio.h>
void print(void);
float getnum(void);
char getletter(void);
char getletter1(void);
int main(void)
{
float number1,number2;
char choice;
print();
while ((choice = getletter1() )!= 'q')
{
printf("enter first number:\n");
number1 = getnum();
printf("enter second number:\n");
number2 = getnum();
switch (choice)
{
case 'a':printf("%g+%g=%g\n", number1, number2, number1 + number2); break;
case 's':printf("%f-%f=%f\n", number1, number2, number1 - number2); break;
case 'm':printf("%f*%f=%f\n", number1, number2, number1*number2); break;
case 'd':if(!number2)
printf("enter a number other than 0;\n"); number2 = getnum();
printf("%f/%f=%f\n", number1, number2, number1 / number2); break;
}
printf("\n");
printf("\n");
printf("\n");
print();
}
printf("bye!\n");
return 0;
}
void print(void)
{
printf("enter the operation of your choice:\n");
printf("a.add s.subtract\n");
printf("m.multiply d.divide\n");
printf("q.quit\n");
}
float getnum(void)
{
float number;
char ch;
while (scanf("%g", &number) != 1)
{
while ((ch=getchar() )!= '\n')
{
putchar(ch);
printf(" is not a number.\n");
printf("please enter a number,such as 2.5,-1.78e8 or 3:\n");
}
while (getchar() != '\n')
continue;
}
return number;
}
char getletter(void)
{
int ch;
ch = getchar();
while (getchar() != '\n')
continue;
return ch;
}
char getletter1(void)
{
int ch;
ch = getletter();
while(ch!='a'&&ch!='s'&&ch!='m'&&ch!='d'&&ch!='q')
{
printf("please respond with a,s,m,d.\n");
ch = getletter();
}
return ch;
}
知识点:
问题:
解决办法:
看来很难哦,都没人知道。。。