文章目录

  • 1 原则1——遵循 IPO思想
  • 2 原则2——友好的UI
  • 3 理解为什么要这么写输入和输出语句

1 原则1——遵循 IPO思想

IPO,即:Input - Process - Outpu

一个再简单的问题,都需要先分析它的输入、处理和输出。
输入方式: 键盘输入、文件输入、扫描仪输入…
处理: 那就是具体问题具体分析,就是我们说的算法罗
输出:显示器输出、文件输出、文本输出、图形输出…

既然是写给C语言的初学者,那么,我们就从最简单的键盘输入、显示器输出着手。

2 原则2——友好的UI

即:输入和输出语句前后,要有必要的输入输出提醒语句。

3 理解为什么要这么写输入和输出语句

先看下面的程序:

#include <stdio.h>   //standard input output head头文件
int main()
{printf("100 - 5 = 95\n");return 0;
}

说明: printf引号下面,就是要输出的内容
好处:我们写第一个程序就可以运行了,printf语句用起来很简单;
坏处: 95不是机器算的,是我们自己算的。
如果换成987*54 ,我们还得去找个计算器或者打个草稿。

改进一下:

#include <stdio.h>   //standard input output head头文件
int main()
{printf("987 * 54 = %d\n",987*54); //格式控制符   return 0;
}

说明: printf引号下面的内容,基本都是原样输出的,你写了啥,就输出啥。
格式控制符:按照我指定的格式,去解析输出列表里的值并输出。
——所以,要输出变量/表达式的值,用格式控制符。
缺点:目前这个程序的坏处:只能算987*54

改进2:

#include <stdio.h>   //standard input output head头文件
int main()
{int a,b;a = 987;  //引入变量b = 54;printf("%d * %d = %d\n",a,b,a*b);  return 0;
}

说明:于是我们引入了变量,也就是说,用变量来表示你要计算的数。
坏处:要从98754 换成 78945, 需要程序员去改上面这个程序。

改进3:

#include <stdio.h>   //standard input output head头文件
int main()
{int a,b;scanf("%d",&a);   //从键盘输入变量的值scanf("%d",&b);printf("%d * %d = %d\n",a,b,a*b); //计算并输出O  return 0;
}

说明:运行这个程序,可以从键盘动态输入a和b的值,那么a和b的值就可以由用户决定了。
坏处:不懂程序的人,一运行程序就是个黑屏幕,不知道要干啥。

改进4:

#include <stdio.h>   //standard input output head头文件
int main()
{int a,b;printf("input a:\n");  //提示输入变量的语句scanf("%d",&a);   //输入Iprintf("input b:\n");scanf("%d",&b);printf("%d * %d = %d\n",a,b,a*b); //计算并输出O return 0;
}

说明:给输入语句增加了提示语句,便于和运行这个程序的用户进行交互。因此,输入和输出尽量应考虑友好的UI(User Interface)。
坏处:友好的UI是方便使用程序的用户,但良好的程序设计风格,是方便和你搭档的程序员,能看懂你的程序,写程序的人应遵循:
1)尽量让每句代码的功能单一;
2)按IPO组织程序;
3)变量名尽量做到见名知意;
4)尽可能给你的程序写注释。

改进5:

#include <stdio.h>   //standard input output head头文件
int main()
{int a,b,mul;printf("input a:\n");  //提示输入变量的语句scanf("%d",&a);   //I:输入printf("input b:\n");scanf("%d",&b);mul = a*b;      //P:处理printf("%d * %d = %d\n",a,b,mul); /O:输出return 0;
}

小结: 输入输出语句的使用简单,但是语法多。而很多初学者的关注点都放到了语法上。 但是,学习程序,我想更多地是去理解,程序为什么这么写。然后再写程序的过程中,去熟悉语法。

1——从IOP思想开始相关推荐

  1. 【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP

    哈喽~大家好呀,这篇来看看Spring 框架的两大核心思想.

  2. Unity-面向接口编程(IOP)

    Unity框架一个比较重要的一个技术:面向接口编程 接口原理:首先接口在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承).接口是一组规则的集 ...

  3. 面向过程(POP)、面向对象(OOP)、面向接口(IOP)、面向切面(AOP)

    面向过程POP 是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个 ...

  4. POP、OOP、IOP、AOP

    面向过程(POP):典型的是C/C++的结构体,结构体里只有变量,没有处理变量的方法,需要专门编写处理变量的方法. 面向对象(OOP):ArrayList list=new ArrayList();坏 ...

  5. 如何在 IOP 期刊上发表论文

    如何在 IOP 期刊上发表论文 (英文稿由 Natasha Leeper 撰稿,吕铭方 编译.完稿) 准备发表你的研究 在著名的审稿期刊上发表你的研究是你工作的一个重要组成部分,它将保证你的事业发展, ...

  6. 算法设计思想(5)— 递归法

    1. 递归概念 递归 Recursion是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己. ​ 递归有两层含义: 递归问题必须可以分解为若干个规模较小.与原问题形式相同的子问 ...

  7. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  8. 分治算法的设计思想(二分检索、二分归并排序)

    分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...

  9. AI框架精要:设计思想

    AI框架精要:设计思想 本文主要介绍飞桨paddle平台的底层设计思想,可以帮助用户理解飞桨paddle框架的运作过程,以便于在实际业务需求中,更好的完成模型代码编写与调试及飞桨paddle框架的二次 ...

最新文章

  1. 中国电子信息工程科技发展十四大趋势(2021)
  2. IOS网址解析-demo
  3. vim 语法高亮显示
  4. CPU亲和性的使用与机制--含Xen中VCPU和PCPU的綁定方法
  5. 《Linux内核设计与实现》读书笔记(三)- Linux的进程
  6. OS_CORE.C(7)
  7. java中filereader读取文件_java – 如何使用FileReader逐行读取
  8. PCB中英对照一、 综合词汇
  9. 如何查询硬盘序列号,百度的答案全是错的
  10. px4源码----位置估算(position_estimator_inav_params.h)
  11. Bugku CTF 每日一题 想蹭网先解开密码
  12. 关于嵌入式软件系统测试策略和方案设计详解
  13. 软件构造第一次实验感想总结
  14. 学习记录-FDD大规模MIMO系统的稀疏信道估计技术研究
  15. 计算机高级筛选操作步骤,【EXCLE表格中根据特定的条件进行高级筛选】计算机excel高级筛选步骤...
  16. #51CTO学院四周年#一路前行,一路陪伴
  17. 语音识别(ASR)论文优选:端到端ASR综述Recent Advances in End-to-End Automatic Speech Recognition
  18. 【养生之道】男人养生的秘诀
  19. Go:sqrt平方根计算(附完整源码)
  20. 用php实现加减乘除计算器,利用php怎么编写一个加减乘除计算器

热门文章

  1. AS3 加解密的隐藏常用方式分析
  2. 如何给表格中的关键字加中括号,双引号?
  3. 给我一个西门子plc采集大数据存储与分析方案
  4. linux的nslookup命令,Linux nslookup命令
  5. ES6 语法糖(一)
  6. CentOS7安装部署Slurm集群详细步骤及常见的问题.
  7. eclipse的使用简介
  8. 万能遥控程序c语言,单片机解码万能红外遥控器的C51程序
  9. Do Deep Neural Networks Learn Facial Action Units When Doing Expression Recognition?阅读笔记
  10. CAN通信标准帧和扩展帧介绍