今天学习了如何定义变量的细节处理,学到了不同类型的赋值运算,还有各种语句的具体形式和概念;同时还重点学习了输入输出的定义和类型,以及其中所用到的占位符的使用方法和细节。
? 可以用单词或者用缩写形式
? 拼音在程序中会给人一种很模糊的意思 增加了程序的可读难度
? a.大驼峰 NewNumber? 两个单词的第一个字母都为大写 看着更具层次感
??b.小驼峰 newNumber? 第二个单词的第一个字母写成大写 在程序中更突出
? c.内核命名 New_Number? 再两个单词中间加上下划线
? 在整个程序编写中尽量使用一种命名法
一般要求:左右两边类型匹配
a.高精度给低精度赋值 会出现精度丢失(损失:小数点后面位数变少) 低精度给高精度赋值 无影响
b.长类型给短类型赋值 会出现高位截断 (截断:短整型最多能放多少字节)只打印出低位数据
c.短类型赋值给长类型 会出现符号位扩展
? 无符号位: 结果会在前面补零
? 有符号位:?符号位扩展(最高位充当符号位)
? ? (1)最高位为0?则结果前面补0
? ? (2)最高位为1?则结果前面补1
? 输出中%d,%o,%#x都默认为有符号int型
如:if()
? {
? }else
? ? ? ? {
? ? ? ? ?}
? 如:printf("hello world");
? 如:1+2 ;2+3;
?如: ;? // 空? (只有一个分号 程序无法识别)
如:{
? ? ? ? ? ?多条语组合 一起 表达一个意思
? ? ? ?}
如:a=1;? num1=36;? ?(将一个数值或者字符赋值为一个被初始化的变量)
? 用过鼠标键盘将信息输入到计算器的(内存)中 再有由显示屏或外部显示器输出
? c语言中输入输出的语句都是通过标准库的调用实现的,比如我们常用的scanf、printf之类的都是编写好的库函数
? 如我们常用的#include? <stdio.h>这种类型的就是我们所用的库函数
int grtchar(void);? //? void? 表示空类型
? 在键盘上获得一个单个字符? 他有一个整形型的返回值??成功读到是时会返回从键盘输入第一个字符的ASSCII码
int putchar(void);? //
? 向终端输出一个字符,把参数char指定的字符(无符号)写入到c的库函数中
printf("格式控制字符串",输出列表);
? %开头的成为占位符? 只要不是占位符其他都是普通字符(原样输出)
? 占位符 与 输出列表从左到右逐个匹配(如果占位符个数多余输出列表,多的输出随机值)
//整型
%d: 是以有符号的十进制形式输出
%u:是以无符号的十进制形式输出
%x:是以十六进制形式输出
%o:是以八进制形式输出
//浮点数
%f:是以小数的形式输出 单数最多保留6位
%g:是以最简洁的形式输出 小数点后面的零位都会被省略
%e:是以科学计数法的形式输出
//字符
%c:是以字符的形式输出
%s:是以字符串的形式输出
#:%[辅助控制符]x 输出十六进制的前缀
m(数字):输出宽度----默认右对齐;想要左对齐就在数字前加一个负号 如:%5d
.n(数字):控制输出小数的位数? 在字符串里输出固定前多少位 如:%.3f
l? //? long型
ll? //long long型
h? // 短整型 指的是一半的意思? 占两个字节? 如%hc? 只输出原来字符的一半? 本来输出abcd 结果输出ab? 在计算中本来要输出:
1111? 0100? 0010? 0100? 0000? 结果输出:
? ? ? ? ?0100? 0010? 0100? 0000? (刚好输出原来数据的低两位字节)
hh //? 占一个字节
? 注意:h和hh最后输出的结果也是有符号型 输出的结果的最高位为结果数值的符号
格式:scanf(”格式控制字符串“,地址列表)
占位符:占了一个位置,将输入的数据,转换为 占位符指定的格式? 放的地址指定的空间上 所使用的占用符同时也决定能识别字符的范围
//整型
%d: 将输入的数据转换为有符号的十进制形式
%u:将输入的数据转换为无符号的十进制形式
%x:将输入的数据转换为十六进制形式
%o:将输入的数据转换为八进制形式
//浮点数
%f:将读入的数据转换成小数的形式
%g:将读入的数据转换成简洁的形式 小数点后面的零位都会被省略
%e:将读入的数据转换成科学计数法的形式
//字符
%c:将读入的数据转换成字符的形式
%s:将读入的数据转换成字符串的形式
? 1.参数一定要写取地址&
? 2.多个数据输入时以空白符号作为分隔符(空格 回车 TAB)
? 3.浮点数据输入时:
? ? dobule-------%lf
? ? int-------%d
? ? long------%ld
? ? long long------%lld
? ? (总结一句话就是类型要匹配)
? 4.辅助控制符m(数字):输入m个字符操作结束 正常读入m个字符 超过m个字符 则值读满m字符
? 5.scanf匹配结束条件:scanf ("%d%d%d",&a,&b,&c); 每个%d依次对应后面的字符 多一个字符的话 多余的不会读取 少一个字符的话 则%d会随机都除一个垃圾值
? ? a.空白符? b.指定宽度(%3d)? c.非法字符(特殊字符、字母)
? 6.%c字符占位符:几乎可以识别键盘上的任何字符
注:一个空白符可以匹配任意多个空白符
? ? %*c:跳过一个字符项
#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c,s,area;
printf("输入三边长:\n");
scanf("%lf %lf %lf",&a,&b,&c);
if ((a+b)>c&&(a+c)>b&&(b+c)>a&&(a-b)<c&&(a-c)<b&&(b-c)<a)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%g\n",area);
}else
printf("三边不符合构成三角形的条件!\n");
return 0;
}