【第一章】
//
// main.c
// HelloWorld
//
// Created by 姜浩 on 16/3/28.
// Copyright (c) 2016年 jredu. All rights reserved.
//
// 单行注释
// command+/ 批量注释
/*
多行注释 option+command+?? 可以折叠多行注释
*/
#include <stdio.h>
/*
1??#include 预处理语句,意思是包含。写在文件的最上面,main方法之外。
2??stdio.h 标准的输入输出文件。
3??当我们包含系统文件的时候,一般用<>括起来;
当我们包含自己写的文件,一般用“”引起来;
*/
int main() {
/*
1?? main函数,也叫主函数,是C语言程序的执行入口;在一个工程中,有且只有一个main函数;
2?? int代表当前函数的返回值是一个整数类型;函数的最后,必须用return返回一个整数;
3?? ()里面:当前函数的参数。main函数可以有参,也可以无参。
4?? {}成对出现;
*/
printf("Hello, World!\n");
/*
1?? 输出语句,“”里面是将要输出的内容;
2?? 每一行语句结束,必须要有分号;
*/
/***************C语言基本数据类型*******************
整数: short int(4个字节,32位) long(8个字节,64位)
小数: float(两个字节 16位) double(8个字节 64位)
float可以有6-7位有效数字,double可以有15-16位有效数字;
字符型: char
变量名的命名规范:1,变量名只能由 字母,数字,下划线,美元符号组成;
2,变量名开头不能是数字;
3,c语言中的保留字,不能用做变量名,int/flort/char/const;
4,变量名的命名一般要有语义,要规范。【常见的规范】:
当变量名有多个单词组成,首字母小写,之后每个单词的首字母大写 myNameName 或者 my_name-name
*/
int n;//声明一个int类型的变量n
n=1;//给变量n赋值为1
long l=23333;//声明变量的同时直接赋值;
const float PI=3.1415926;//用const修饰的变量成为常量,不可被改变。常量一般全用大写!!!
char c=‘A‘;//‘‘包括的为一个字符,可以是一个字母、一个数字、一个符号
printf("姜浩%c哈哈哈\n",c);
int a=1,b=2,d;//在一行语句中,声明多个变量,用,分开可以直接赋值。
练习int a;
a=-1;
printf("%d\n",a);
a=0;
printf("%d\n",a);
a=1;
printf("%d\n",a); 【关于赋值 和 打印输出】
a=99;
printf("%d\n",a);
char c=‘B‘;
printf("%c\n",c);
float f=1.23;
printf("%f\n",f);
练习:
int w=10,u=8,z;
printf("互换前的纸牌:\n左手中的纸牌为:%d\n右手中的纸牌为:%d\n",w,u);
z=w;
w=u;
u=z;
printf("输出互换后手中的纸牌:\n左手中的纸牌为:%d\n右手中的纸牌为:%d\n",w,u);
运算符的应用【+,—,*,/,%(除完以后取余数,且保留6位小数部分)】
double dou=22/10;
printf("dou的值为:%f\n",dou);//如果除号两边均为正数,那么最终、结果为正数,且直接抹掉小数;如果两边有任意一边为小数,那么最终结果为小数。这里结果为2.000000。
double dou=30.5/10;
printf("doudezhiwei:%f\n",dou);//结果为3.0500000
double dou=30%10;
printf("doudezhiwei:%f\n",dou);//结果为0,因为余数为0
int a,b,c,d,e=8349,f;
a=e/1000;
给你个数,求各位数 b=e%1000/100;
的和 c=e%1000%100/10;//c=e%100/10;(取余和取整,先取余,再取整,对8349除以100取余数 是49,然后除以10,取整就是4.)
d=e%1000%100%10/1;//d=e%10;
f=a+b+c+d;
printf("%d\n",f);
printf("%d的个位数字之和为%d\n",e,f);
if(f>20)
{printf("返利50");}
else {printf("返利0");}//if(f<=20) {printf("返利0");}
【数据类型转换】:有两种方式,1,自动类型转换:{由小范围的数据类型向大范围的数据类型自动转换,无需任何条件,
数据类型有小到大,short(char)-int-long-float-double
eg : double d = 1; 有整形的1自动转换为double类型;
2,强制类型转换:由大范围的数据类型转换为小范围的数据类型,需强制转换。
eg :int n = (int)0.999;由浮点型强制转换成int型,小数点直接抹掉(结果为0)
t1:( 将一个小写字母转换成大写字母,大小写相差32):
(1) char xiao=‘a‘;
char daxie=xiao-32;
printf("%c转化后为%c\n",xiao,daxie);
(2)char xiaoxie=‘b‘; (不需要把char类型转换成int类型)
int zhengshu=xiaoxie;
int zhengshudaxie=zhengshu-32;
char daxiede=zhengshudaxie;(强制转换)
printf("%c转化成大写为%c\n",xiaoxie,daxiede)
【基本输入与输出】:
1,printf 输出 {1,printf()的括号中肯定要有"",而其中的内容将是输出的内容。
eg:printf("i love you !!!!")
2,如果需要输出变量,则需要在""中放入占位符,引号外面放入变量,且有几个占位符就需要有几个变量类型一一对应。
eg:printf("%d %f %d",int,float,int)
3,占位符的种类: int-%d long-%ld float-%f double-%lf char-%c .......%f和%lf默认保留6位小数
4占位符的格式化输出:(1):%.2f 2代表精度,即保留两位小数(4舍5??入))
float f=1.234;
printf("%.2f\n",f);
(2)%10f:代表总宽度为10;一个数字或一个小数点均为一个宽度;如果原数字宽度小于10;则左边补空格;如果大于10,则正常输出;
(3)%010f :宽度计算同上,只是左边补充0;右边补0 用-
(4)第一条可与第二三条配合使用;
eg:%10.2f;保留两位小数,且总宽度为10;
#include<stdio.h>
void main()
{
int=num;
printf("输入一个数"
scanf("%d的平方为%d\n",num,num*num);
}
转义字符 \
int higt=2;
float r=1.5,v;
v=3.14*r*r*higt;
printf("hhaha\"ahah\"ahhaaha%.2f\n",v);
2,scanf 输入:
1)写法:scanf的()中包含两部分,"占位符"和变量地址
eg:int n;
scanf("%d",&n);//输入就相当于给变量赋值
2)scanf中放的是变量地址!!!!一定不能漏掉取地址&!!!!
3)原则上来讲,scanf的“”中只放占位符,不要放其他任何符号。
4)一个scanf给多个变量赋值:scanf("%d%d",&n,&m);
5)当我们输入字符的时候,由于char类型可以接受上次输入所遗留的回车符号,会导致本次的scanf语句误以为你输入的字符为回车而直接结束,所以,当scanf输入char类型的时候,应先吸收掉上次输入遗留的回车,方式有两种: 一种:%c前面加空格顶替回车符scanf(“ %c”,&grade)
二种 :写两遍scanf(“”,&),第一道吸收回车,第二道输入字符
T(练) 输入任意高和半径 求体积
printf("请输入圆柱体的半径和高度:");
float h,rr,vv;
scanf("%f%f",&h,&rr);
vv=3.14*rr*rr*h;
printf("圆柱体的体积为:%f",vv);
练习: int xuehao,nianling;
char xingbie,chengji;
printf("请输入学号:");
scanf("%d",&xuehao);
printf("请输入年龄:");
scanf("%d",&nianling);
printf("请输入性别:");
scanf(" %c",&xingbie);
printf("请输入成绩:");
scanf(" %c",&chengji);
printf("您录入的学生信息如下\n学号:%d\t年龄:%d\n性别:%c\t成绩:%c",xuehao,nianling,xingbie,chengji);
练习:加密
int num,ge2,shi2,bai2,qian2;
printf("请输入四位整数:");
scanf("%d",&num);
ge2=(num%10)+5;
shi2=(num%100/10)+5;
bai2=(num%1000/100)+5;
qian2=(num/1000)+5;
printf("加密数字为:%d%d%d%d\n",ge2,shi2,bai2,qian2);
return 0;
T超市打印单:
int dengshanbao,yumaoqiu,yumaoqiupai,dengshanbaojia,yumaoqiujia,yumaoqiupaijia,shijijiaofei;
float zhaoqian,xiaofeizongjine;
printf("欢迎进入JREDU购物系统:\n");
printf("请输入购买登山包个数:");
scanf("%d",&dengshanbao);
printf("请输入购买羽毛球个数:");
scanf("%d",&yumaoqiu);
printf("请输入购买羽毛球拍个数:");
scanf("%d",&yumaoqiupai);
printf("**********消费单**********\n");
printf("购买物品\t单价\t个数\t金额\n");
dengshanbaojia=dengshanbao*198;
yumaoqiujia=yumaoqiu*90;
yumaoqiupaijia=yumaoqiupai*400;
printf("登山包\t¥198\t%d\t%d\n",dengshanbao,dengshanbaojia);
printf("羽毛球\t¥90 %d\t%d\n",yumaoqiu,yumaoqiujia);
printf("羽毛球拍\t¥400\t%d\t%d\n",yumaoqiupai,yumaoqiupaijia);
printf("====================\n");
xiaofeizongjine=dengshanbaojia+yumaoqiujia+yumaoqiupaijia;
printf("消费总金额:¥%.1f\n",xiaofeizongjine);
printf("实际交费:¥%c",shijijiaofei);
scanf("%d",&shijijiaofei);
zhaoqian=shijijiaofei-xiaofeizongjine;
printf("找钱:¥%.1f",zhaoqian);
char c;
//scanf("%c",&c);
//printf("%c",c);
c=getchar()
//输出
putchar(c)
//输入
return 1;
}
char类型的占位符是%c,int类型占位符%d float类型占位符%f
char类型 "a-z" = 97-122
‘0-9‘=48-57
【getchar和putchar】.