小学生都看得懂的C语言入门(1): 基础/判别/循环
c基础入门, 小学生也可以都看得懂!!!!
安装一个编译器, 这方面我不太懂, 安装了DEV-C++ ,体积不大,30M左右吧, 感觉挺好用,初学者够了.
介绍下DEV 的快键键:
恢复 Ctrl+Z 重做 Ctrl+Y 剪切 Ctrl+X 拷贝 Ctrl+C 粘贴 Ctrl+V 搜索替换内容 Ctrl+F
编译 F9 运行 F10 编译运行 F11 设置注释 Ctrl+/ 取消注释再重复一次即可 (keep it in heart!)
复制行 Ctrl+E 删除行 Ctrl+D
整体左移一个tab位置 shift+tab 整体右移一个tab位置 tab
整体代码缩进对齐 Ctrl+Shift+A
1. hello world
C基础框架
#include <stdio.h>
int main()
{
printf("hello world");
return ;
}
#include <stdio.h>
int main()
{
printf("23+32=%d\n",+);
int price=; //定义变量类型与初始值 可以定义两个变量int price1,price2
printf("please input the price:");
scanf("%d",&price); //输入一个数 & 与指针有关 若不是输入整数,则默认为初值0
int change=-price;
printf("找您%d元",change);
return ;
}
#include <stdio.h>
int main()
{
int a=;
int b=; scanf("%d %d",&a,&b); //也可以是逗号,那么输入也是1,3 输入要遵循"%d %d"形式
printf("%d %d\n",a,b);
return ;
}
2.数据类型, int类型的数据之间的运算得到的还是int 1/10=0, 但是1.0/10=0.1了
#include <stdio.h>
int main()
{
int foot=;
int inch=; //整数的运算结果还是整数,会导致结果不准确,只需要将/12 改成12.0!! 10/3=3,10.0/3=3.333333
//scanf("%d %d",&foot,&inch) ; printf("身高是%f米\n",((foot+inch/)*0.3048)); printf("身高是%f米\n",((foot+inch/12.0)*0.3048));
//也可以定义变量中修改
double foot1=; //双精度浮点数
double inch1=;
//scanf("%lf %lf",&foot1,&inch)1 ; //改成lf格式
printf("身高是%f米\n",((foot1+inch1/)*0.3048));
return ;
}
得到:
身高是1.524000米
身高是1.701800米
身高是1.701800米
3. 计算时间差:
#include <stdio.h>
int main()
{
int h1,m1;
int h2,m2;
scanf("%d %d",&h1,&m1);
scanf("%d %d",&h2,&m2);
int t1=h1*+m1;
int t2=h2*+m2;
int t=t2-t1;
printf("the diff of the time is %d小时%d分钟",t/,t%);
return ;
}
输入:
2 40
3 12
the diff of the time is 0小时32分钟
用if 语句计算时间差修改
#include <stdio.h>
int main()
{
int h1,m1;
int h2,m2;
scanf("%d %d",&h1,&m1);
scanf("%d %d",&h2,&m2);
int ih=h2-h1;
int im=m2-m1;
if (im<) {
im=+im;
ih--;
}
printf("the diff of time is %d hours %d minutes",ih ,im);
return ;
}
2 15
3 40
the diff of time is 1 hours 25 minutes
4.交换两个数
#include <stdio.h>
int main()
{
// 运算顺序 * / % + - =赋值 a=b=6 表示,a=(b=6)赋值是从右向左!!
//
int a=;
int b=;
int t;
t=a;
a=b;
b=t;
printf("a is %d,b is %d",a,b);
return ;
}
a is 6,b is 5
5. n++ \++n区别
#include <stdio.h>
int main()
{
// 调试之前一定要先编译!!!很重要
// 复合赋值 s+=1, s*=a+b n++ n-- 分别加1 减1 也有++n,--n,
//结果不同,n++ 表示+1之前的值,++n 是加一之后的值 , int a;
a=;
printf("a++=%d\n",a++); //
printf("a=%d\n",a);//
printf("++a=%d\n",++a); //
printf("a=%d\n",a); //
return ;
}
a++=10
a=11
++a=12
a=12
6.关系运算符
#include <stdio.h>
int main()
{
//关系运算符
printf("%d \n",>); //
printf("%d \n",<=); //
printf("%d \n",<=+); //1 加法优先
//关系运算符的优先级 大于 赋值 int x=a>0 就是先判别a>0 再赋值
// 6>5>4 从左向右判别, 最后等于0
// /* */ 多行注释
return ;
}
7. if else语句
#include <stdio.h>
int main()
{
// 语法 if(){}else{}
int a,b;
printf("please input two integers:");
scanf("%d %d",&a,&b);
int max=;
if(a>b){
max=a;
}else{
max=b;
}
printf("%d",max);
return ;
}
另一种:
#include <stdio.h>
int main()
{
// 语法 if(){}else{}
int a,b;
printf("please input two integers:");
scanf("%d %d",&a,&b);
int max=b;
if(a>b){
max=a;
}
printf("%d",max);
return ;
}
注意: if 要是没有{} 时, 紧跟着if() 后面的语句作为条件成立时的执行语句!
8.应用实例-计算工资
#include <stdio.h>
int main()
{
const double rate=8.25;
const int standard=;
double pay=0.0;
int hours;
printf("please input working hours:");
scanf("%d",&hours);
printf("\n");
if (hours>standard)
pay=standard*rate+(hours-standard)*rate*1.5;
else
pay=hours*rate;
printf("salaty is %f:\n",pay);
}
please input working hours:100
salaty is 1072.500000:
9.循环语句
实例1
#include <stdio.h>
int main()
{
//循环 while(条件判断){循环体} 循环体中要有改变条件的程序,否则为死循环
//判断一个数字是几位数
int x;
int n=;
scanf("%d",&x);
n++;//一定有一位数了
x/=;
while(x>){
n++;
x/=;
}
printf("%d\n",n);
return ;
}
对比以下
#include <stdio.h>
int main()
{
int x;
int n=;
scanf("%d",&x);
while(x>){
n++;
x/=;
}
printf("%d\n",n);
return ;
}
//这个方法不能数0 .输入0 得到的是0 不是1
可以增加if 判别进行修正
#include <stdio.h>
int main()
{
int x;
int n=;
scanf("%d",&x);
if(x>) { while(x>){
n++;
x/=;
} }else{
n=;
}
printf("%d\n",n);
return ;
}
也可以用 do while 修正
#include <stdio.h>
int main()
{
//do-while 循环 do{循环体语句} while(循环条件); 第一次进入不用判别条件
int x;
int n=;
scanf("%d",&x);
do{
n++;
x/=; //这两行可以交换位置
} while(x>);
printf("%d\n",n);
return ;
}
// 输入0 得到1
实例2--阶乘
#include <stdio.h>
int main()
{
//阶乘
int i=;
int n;
scanf("%d",&n);
int f=;
while(i<=n){
f*=i;
i++;
}
printf("%d!=%d\n",n,f) ;
return ;
}
10
10!=3628800
用for 修改上述
#include <stdio.h>
int main()
{
//for 循环 for(初值;终值;步长变化){}
int i=;
int n=;
//scanf("%d",&n);
int f=;
for (i=;i<=n;i++){
f*=i;
}
printf("%d!=%d\n",n,f) ;
return ;
}
4!=24
进一步改进:
#include <stdio.h>
int main()
{
//改进 i可以从2开始,省去一轮循环,并且当n=1时,循环不被执行,正确!!
int i=;
int n=;
int f=;
for (i=;i<=n;i++){
f*=i;
}
printf("%d!=%d\n",n,f) ;
return ;
}
再次改进 从n开始乘
#include <stdio.h>
int main()
{
//改进 从n开始乘
int i=;
int n=;
int f=;
for (i=n;i>;i--){
f*=i;
}
printf("%d!=%d\n",n,f) ;
return ;
}
最后改进, 不用引入变量i, 让n自己变小
#include <stdio.h>
int main()
{
//改进 让n自己变小 ,不用变量i
int n=;
int f=;
int n0=n;
for (n=n;n>;n--){
f*=n;
}
//或者
//for (;n>1;n--){
// f*=n;
//}
printf("%d!=%d\n",n0,f) ;
return ;
}
注意for 的初始值 终值.
//int i;
//for(i=0;i<5;i++) {
// printf("i=%d",i); //0 1 2 3 4
//}
//printf("\n最后i=%d",i); //循环结束之后i=5 for(i=;i<=;i++) {
printf("i=%d",i); //
}
printf("\n最后i=%d",i); //循环结束之后i=6 //上述两个循环同样走5次,但是结果不同 int i;
//for(初始条件;条件;每轮动作)
最后提一个问题....
提问待解决??
#include <stdio.h>
int main()
{
//int i=1;//定义可以放在for 循环里面,因为只有在循环中才用到了i, for 之外没有用到
int n=;
int f=;
for (int i=;i<=n;i++){
f*=i;
}
printf("%d!=%d\n",n,f) ; //这个出错了 只有在C99 中才可以在for中定义变量 ,如何修正???
return ;
}
小学生都看得懂的C语言入门(1): 基础/判别/循环的更多相关文章
- 小学生都看得懂的C语言入门(5): 指针
现在已经学到C语言的后面了, 快学完咯.... (一)取地址运算 先来看一下sizeof 计算所占字节 #include<stdio.h> int main() { int a; a=; ...
- 小学生都看得懂的C语言入门(6): 字符串
1.字符用 char 表示 #include<stdio.h> int main() { char c; char d; c=; d='; if (c==d){ printf(" ...
- 小学生都看得懂的C语言入门(4): 数组与函数
// 之前判断素数, 只需要到sqrt(x)即可,//更加简单的, 判断能够比已知的小于x的素数整除, 运行更快 #include <stdio.h> // 之前判断素数, 只需要到sqr ...
- 小学生都看得懂的C语言入门(3): 数组与函数
#include <stdio.h> int main() { int x; ; ; scanf("%d",&x){ sum+=x; cnt++; scanf( ...
- 小学生都看得懂的C语言入门(2): 判别 循环的一些应用实例
1.bool 类型 定义bool类型之前需要导入#include <stdbool.h> #include <stdio.h> #include <stdbool.h&g ...
- 小学生都能读懂的网络协议之:WebSocket
目录 简介 webSocket vs HTTP HTTP upgrade header websocket的优点 webScoket的应用 websocket的握手流程 WebSocket API 总 ...
- 胖虎都看得懂的CSS入门
CSS入门 CSS是什么 摘自维基百科 层叠样式表(英语:Cascading Style Sheets,简写CSS),又称串样式列表.级联样式表.串接样式表.层叠样式表.階層式樣式表,一种用来为结构化 ...
- 小白都看得懂的Javadoc上手教程
Javadoc是什么 官方回答: Javadoc is a tool for generating API documentation in HTML format from doc comments ...
- 小白都看得懂的Javadoc使用教程
Javadoc是什么 官方回答: Javadoc is a tool for generating API documentation in HTML format from doc comments ...
随机推荐
- python笔记(一)获取当前目录路径和文件
一.获取当前路径 1.使用sys.argv[0] import sys print sys.argv[0]#输出#本地路径 2.os模块 import os print os.getcwd() #获取 ...
- Web三层-UI/BLL/DAL/MODEL
2013传智播客视频\视频\2013-05-28-EF\视频 创建4个程序集,添加引用,model添加映射, P01UI表现层--BLL+MODELP02BLL业务层--DAL+MODELP03DAL ...
- HTML - CSS 基础篇
网页主要由四部分组成: 1.内容(content) 图片.文本.多媒体等. 2.结构(structure) 框架布局(div+css布局的多行多列的结构.) 3.表现(presnetation) 修饰 ...
- SpringBoot文件上传大小设置(yml中配置)
#文件大小 MB必须大写 # maxFileSize 是单个文件大小 # maxRequestSize是设置总上传的数据大小 spring: servlet: multipart: enabled: ...
- openstack Q版部署-----keystone认证服务安装配置(3)
一.新建数据库及用户(控制节点) 登录数据库,创建db以及用户: CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'ke ...
- 获取AWR报告
1.进入sqlplus [oracle@localhost admin]$ sqlplus / as sysdba SQL Production :: Copyright (c) , , Oracle ...
- 2017-2018-2 20165325 实验四《Android程序设计》实验报告
一.Android程序设计-1 1.检查点要求 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android ...
- 【转】Python3 configparse模块(配置)
[转]Python3 configparse模块(配置) ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(s ...
- FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项
1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...
- 很清晰的解读i2c协议【转】
转自:https://blog.csdn.net/weixin_41718085/article/details/79376823 转载:http://dpinglee.blog.163.com/bl ...