C语言编程学习:浮点数类型

浮点数类型

浮点数类型用float表示,占用4个字节的内存空间,占位符是%f。

无符号浮点数用unsigned float表示,占用4个字节的内存空间,占位符是%lf。

浮点数的字面量是在小数后面加小写的f或者大写的f,比如3.33f或者3.33F。

实现加法

#include <stdio.h>

int main(int argc, char **argv){
  float a;
  float b;
  float c;

  // 赋值
  a = 11.11;
  b = 22.22;
  c = a + b;

  // 输出
  printf("a = %f.\n", c);

  return 0;
}

练习

让用户输入圆的半径,计算并输出圆的面积和周长。

示例代码:

#include <stdio.h>

int main(){
  printf("请输入圆的半径:");
  float r;
  float pi = 3.1415;
  scanf("%f", &r);

  printf("您输入的圆的半径是:%f\n", r);
  printf("圆的周长是:%f\n", 2*pi*r);
  printf("圆的面积是:%f\n", pi*r*r);

  return 0;
}

输出:

请输入圆的半径:33
您输入的圆的半径是:33.000000
圆的周长是:207.339005
圆的面积是:3421.093506

双精度浮点数类型

双精度浮点数类型用double表示,占用8个字节的内存空间,占位符是%lg。

双精度浮点数类型虽然占用的空间更大,但是精度更高,能够表示的数也更大,是用来存储小数类型更推荐的一种数据类型。

示例:让用户输入圆的半径,计算并输出圆的面积和周长。

#include <stdio.h>

int main(){
  printf("请输入圆的半径:");
  double r;
  double pi = 3.1415;
  scanf("%lg", &r);

  printf("您输入的圆的半径是:%lg\n", r);
  printf("圆的周长是:%lg\n", 2*pi*r);
  printf("圆的面积是:%lg\n", pi*r*r);

  return 0;
}

输出:

请输入圆的半径:33
您输入的圆的半径是:33
圆的周长是:207.339
圆的面积是:3421.09

练习

假如你要去购买卫生纸,输入卫生纸的数量和单价,计算总金额,输出到屏幕上。

示例代码:

#include <stdio.h>

int main(){
  printf("请输入单价:");
  double price;
  scanf("%lg", &price);

  printf("请输入购买数量:");
  int num;
  scanf("%d", &num);

  double total = price * num;
  printf("卫生纸的单价是%lg元,您购买的数量是%d包,您总共需要支付%lg元。\n", price, num, total);

  return 0;
}

输出结果:

请输入单价:5
请输入购买数量:20
卫生纸的单价是5元,您购买的数量是20包,您总共需要支付100元。

练习

让用户输入两个数a和b,输出这两个数。然后交换这两个数的变量的值,再输出。

比如a=3,b=4,交换以后a=4,b=3。

示例代码:

#include <stdio.h>

int main(){
  printf("请输入第一个数:");
  double a;
  scanf("%lg", &a);

  printf("请输入第一个数:");
  double b;
  scanf("%lg", &b);

  printf("a = %lg \t b = %lg \n", a, b);

  // 交换
  double temp = a;
  a = b;
  b = temp;
  printf("a = %lg \t b = %lg \n", a, b);

  return 0;
}

输出:

请输入第一个数:11
请输入第一个数:22
a = 11   b = 22 
a = 22   b = 11
THE END