C语言程序设计入门11——初识格式化输入1:求圆面积

格式化输入函数 scanf 使用方法:

作为 C 程序的格式化输入库函数 ,scanf()的函数声明包含在头文件 <stdio.h> 中,函数的一般形式为:

  1. scanf(<格式说明字符串>,<参数地址表列>);

scanf()函数从标准输入设备 (键盘) 获取数据赋值给程序变量。其函数形式与格式化输出函数printf相似。

  • < 格式说明字符串 > , < 参数地址表列 > 均是必要参数;
  • < 格式说明字符串 > 由双引号括起来, 内含的 % 格式说明符与 < 参数地址表列 > 一一对应 , 给出数据输入格式,其具体形式与printf函数的< 格式说明字符串 >相同;
  • < 参数地址表列 > 中应使用取地址运算符&给出变量在内存的地址,若存在多个参数则以逗号相隔。

注意:参数表列提供的是变量地址&a,而不是变量a。 

格式化输入函数 scanf 的格式说明符:

格式说明符输入的数据类型
%d十进制整型数
%f浮点数
%o八进制整型数
%x十六进制整型数
%c一个字符
%s字符串

scanf会忽略 相邻 % 格式说明中的空格制表符

一个小例子:

  1. #include<stdio.h>
  2. mian(){
  3. int n;
  4. float a;
  5. scanf("%d,%f",&n,&a); // 这里 %d 和 %f 之间增加一个逗号
  6. printf("n = %d, a = %f\n", n, a);
  7. }

测试输入:20 34.43 输出:

  1. n = 20, a = -107374176.000000

这里的 a 值有明显的错误 , 因为增加的逗号属于字符字面值。这里需要注意的是,scanf允许字符字面值出现在其格式说明字符串中,但在输入时, 要求必须在对应的位置输入相同的字符字面值。 所以我们必须用如下输入方式: 测试输入一:20,34.43 输出:

  1. n = 20, a = 34.430000

测试输入二:20, 34.43

输出:

  1. n = 20, a = 34.430000

从第二个样例可以发现,当在输入的整数后面紧跟着输入了逗号后,在下一个要输入的浮点数前面(对应代码中逗号后面的%f)输入的多个空格会被忽略。

将原代码进一步修改成如下代码:

  1. #include<stdio.h>
  2. mian(){
  3. int n;
  4. float a;
  5. scanf("n=%d,a=%f",&n,&a); // 这里增加多个字符字面值
  6. printf("n = %d, a = %f\n", n, a);
  7. }

测试输入:n=20, a=34.43

输出:

  1. n = 20, a = -107374176.000000

这里的 a 值有明显的错误,因为输入时字符字面值必须与 scanf 格式说明字符串严格匹配,不能在字符字面值中间插入空格和制表符。 这里应当使用如下输入:

测试输入:n=20,a=34.43

输出:

  1. n = 20, a = 34.430000

任务:

根据输入的半径计算圆的面积。

要求:

根据控制台输入的半径计算一个圆的面积。 π 已定义为符号常量 PI 。 格式要求: 输入的半径要求为整数,输出的面积要求6位精度并且在数值前添加“半径x的圆面积为:”, 其中 x 是输入的半径数值。

测试输入:3

预期输出: 半径3的圆面积为:28.274334

测试输入:4

预期输出: 半径4的圆面积为:50.265480

 参考:

#include<stdio.h>
#define PI 3.1415926     /* 定义圆周率常量  */
main()
{
    int r;
    float area;
    scanf("%d",&r);
    area = PI*r*r;
    printf("半径%d的圆面积为:%0.6f",r,area);
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值