输出一个float实型变量,要求整数4位c语言float小数点后两位3位正确的格式是什么 有什么知识点可以讲一下吗谢谢谢谢

定义一个整型变量signed int a = 10
定义一个有符号正整数
(signed一般可以省略)
unsigned int a = 10
定义一个无符号整数
(这个时候10前面不能加符号)
int a = 0123
定义八进制数据
以0开头
int a = 0x123
定义十六进制数据
以0x开头
在计算机定义数据时,不可以直接定义二进制
整形变量输出使用的占位符%d
有符号的十进制int类型 占位符
%hd
短整型short 占位符
%ld
长整型 long 占位符
%lld
长长整型 long long 占位符
%o(字母)
输出八进制的int类型
%x
十六进制的int类型占位符,字母以小写输出
%X
十六进制的int类型占位符,字母以大写输出
%u
十进制的无符号数占位符
%hu
无符号短整型占位符
%lu
无符号长整型占位符
%llu
无符号长长整型占位符
整型输入和输出需求:键盘输入一个整型数字,存放到一个整型变量中,再将该整型变量打印出来#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
printf("%d\n",a);
}
解析:int a;
定义一个整形变量a
scanf("%d",&a);
scanf函数表示通过键盘输入赋值,
%d是占位符,表示输入的数据将会是一个整形数据
&a
&表示取地址
&a表示取出a变量对应的内存地址
整行代码表示将键盘输入的数据存放在变量对应的内存地址中
printf("%d\n",a);
打印常用句式
注意:整形数据在内存中存放格式为两部分,一部分是符号部分,一部分是数值部分使用scanf函数,可能会有编译报错4996,这相当于是一个不确定性的异常,因为无法确定用户从键盘输入了什么东西,有可能是个汉字解决办法:在代码第一行加上#define _CRT_SECURE_NO_WARNINGA
或者加一个宏定义#pragma warning(disable:4996)
整型大小short 短整型
2字节
int
整形
4字节
long
长整型
windows为4字节,Linux为4字节(32位) 8字节(64位)
long long 长长整型
8字节
注意:整形数据在内存中占用的字节数与选择的操作系统有关,虽然C语言没有明确规定整形数据的长度,但long类型整数的长度不能短于int类型,short类型整数的长度不能长于int类型当一个小的数据类型赋值给大的数据类型,不会出错,因为编译器会自动转化,但当一个大的类型赋值给一个小的数据类型,有可能会丢失高位。sizeof 计算数据类型在内存中占用的字节(BYTE)大小,他不是一个函数,不需要导入任何头文件,用法:sizeof(数据类型)
sizeof(变量名)
sizeof 变量名
字符型定义:char ch = 'a';
字符型也叫char类型,定义时,需要用单引号把字符括起来打印 %c 占位符大小 1个字节char变量实际上并不是把该字符本身放到内存单元中去,而是将该字符对应的ASCII编码放到变量的存储单元中,char的本质就是一个字节大小的整型ASCII表几个特殊需要记住的:‘0’ = 48 ‘A’ = 65 ‘a’ = 97实型(浮点型)float c = 3.2e3f;//3.2*10的三次方 也就是3.2*1000
float d = 100e-3f;//100*10的-3次方
100*0.001 = 0.1
%e
占位符 以科学计数法打印当前小数
float a = 3210.456;
printf("%e",a);
//3.210456e03
字符串常量字符串是内存中一段连续的char空间,以’\0’(数字0)结尾字符串常量是由双引号括起来的字符序列,如“china”字符串常量与字符常量的不同 : 'a' 为字符常量
在内存中存储为 ‘a’
“a” 为字符串常量
在内存中存储为
'a' '\0'
每个字符串的结尾,编译器会自动的添加一个结束标志位’\0’,即"a"包含两个字符’a’和’\0’举例:char * b = "hello world!";
printf("%s\n",b);
输出
hello world!
char * b = "hello\0 world!";
printf("%s\0",b);
输出 hello
%s 是占位符,表示输出一个字符串,遇到\0停止输出
扩展:char b[11] = "hello world";
字符串加上\0总共长度是12,但是定义b的时候长度只有11,这样字符串最后面的\0就会被舍弃,这种情况打印b 会出现hello world之后全是乱码,每次都不一样字符的输入与输出printf()输出一个字符串putchar()输出一个char,参数可以是变量,字符,数字(ASCII范围内)转义字符getchar() 接收一个char,输入很多字符的话,只接收最后一个格式化输入与输出int a = 10;
printf("===%d===\n",a);
========>
===10===
正常输出
printf("===%5d===\n",a);
========>
===
10===
%5d
表示该十进制数最小宽度为5,并且默认右对齐
printf("===%-5d===\n",a);
========>
===10
===
%-5d 表示该十进制数最小宽度为5,并且左对齐
printf("===%05d===\n",a);
========>
===00010===
%05d 表示该十进制数最小宽度为5,并且前面补零
int a = 123456;
printf("===%5d===\n",a);
========>
===123456===
假如该数有6位,但是最小宽度为5,输出按数字来,而不是按占位符来
float b = 3.14f;
printf("===%f===\n",b);
========>
===3.14===
正常输出
printf("===%7.2f===",b);
========>
===
3.14===
7表示整个浮点数的最小宽度,.2表示小数点后保留两位
printf("===%-7.2f===",b);
========>
===3.14
===
左对齐
printf("===%07.2f===",b);
========>
===0003.14===
位数不够,前面补零
类型转换有两种方式: 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。 double d = 3.14f;
强制类型转换:把表达式的运算结果强制转换成所需要的数据类型,不会四舍五入类型转换的原则:占用内存字节数少的类型,向占用内存字节数多的类型转换,以保证精度不降低:char,short -> signed int -> unsigned int -> long -> double <- float

我要回帖

更多关于 c语言float小数点后两位 的文章

 

随机推荐