回复 7楼 North520
你的这个问题原因是两个scanf之间没有清除缓存中的内容。你在第一个scanf输入半径的时候,后面有个回车,在你输入第二个scanf的时候回读取。所以按照Q版的方法也可以,或者你在第二个scanf前面加一句 fflush(stdin); //清空缓存
下面给你改后的代码:gcc可以通过
#include <stdio.h>
#include <stdlib.h>
#define PI 3.1415926
int main ()
{
float r;
char ch;
printf("请输入半径:");
scanf("%f",&r);
printf("请输入运算标志:\n");
printf("C-----计算周长:\n");
printf("A-----计算面积:\n");
printf("B-----计算面积和周长:\n");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case 'c':
{
printf("周长是:%f",PI*2*r);
break;
}
case 'A':
{
printf("面积是:%f",PI*r*r);
break;
}
case 'B':
{
printf("周长是:%f,面积是:%f",PI*2*r,PI*r*r);
break;
}
default:
printf("运算标志错误!");
}
return 0;
}