C语言关于函数的题目,怎样敲了回车之后继续输入

本题目要求分别编写求圆面积和圆周长的函数,另编写一主函数调用之,要求主函数能输入多个圆半径,输入相应的圆面积和周长。
输入格式:
先输入圆的半径,计算出圆的面积和周长后,再输入Y表示继续输入圆的半径,其它字符表示结束输入。
输出格式:
输出圆的面积和周长,小数点后保留2位小数。
输入样例:
2
Y
3
N
输出样例:
12.57,12.57
28.27,18.85

第1个回答  2019-04-12
#include <stdio.h>
#define PI 3.1415926

double getS(double r)
{
return PI * r * r;
}
double getC(double r)
{
return 2.0 * PI * r; 
}

int main()
{
char   ch;
double r;

do{
scanf("%lf", &r);
printf("%.2lf,%.2lf\n", getS(r), getC(r));

getchar(); // for enter
scanf("%c", &ch);
}while( ch == 'Y' );

return 0;
}

本回答被提问者和网友采纳
第2个回答  2019-04-11
在scanf里 \n 很特别的,不是要求输入一个回车换行。老师应该专门强调一下这点。引用一下别人的说法: 过滤空格、制表符、回车等输入,也就是说 scanf("%d\n", &i); printf("%d\n", i); 你输入一个数后,它是不会立即显示的,要等再接收到一个非(空格、制表符、回车)的输入scanf语句才结束。
相似回答