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); //输入I
printf("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;
}
小结: 输入输出语句的使用简单,但是语法多。而很多初学者的关注点都放到了语法上。 但是,学习程序,我想更多地是去理解,程序为什么这么写。然后再写程序的过程中,去熟悉语法。