一、程序编写导图
源程序书写过程:
1、空函数 2、包含头文件 3、定义常量 4、定义变量
5、初始化或输入 6、计算 7、输出
程序上机过程:
1、新建 2、输入源程序 3、保存 4、编译 5、运行
一、《顺序结构程序设计》电子书籍
二、《顺序结构程序设计》同步学习辅导
2.8 顺序结构程序设计实例
计算机程序由若干条语句构成。语句主要有赋值语句、表达式语句、输入输出语句、分支选择语句、循环语句、空语句以及函数调用语句等。
一个结构化程序有3种基本结构,即顺序结构、选择结构、循环结构。顺序结构是一组按书写顺序执行的语句,选择结构能根据运行时的情况(条件)自动选择要执行的语句组,循环结构允许多次重复执行一组语句。
本章下面介绍顺序结构程序设计。顺序结构程序中的语句绝大部分由赋值语句、表达式语句,输入输出语句和函数调用语句组成。实际上,输入输出语句是对标准1/O函数的调用语句,赋值语句也属于表达式语句。
在C语言中,一个表达式以分号“;”作为结尾就构成了表达式语句,可以在程序中作为语句单独出现。例如:
int i, j, k;
float x, y;
i=1, j=2, k=3; //逗号表达式语句
scanf ("%f%f", &x, &y );
printf("x = %f; y =%f \n", x, y); //输入/输出语句
x=x+4 //赋值语句
顺序结构程序将按语句的书写顺序执行,因此,顺序结构程序设计是最简单的程序设计, 下面通过几个例子来说明顺序结构程序设计的方法。
例2-19 已知三角形的两边a、b及其夹角a,求第三边c及面积s
分析:根据三角形公式可知以下关系。


若a值以角度值输入,则在计算前必须先将其转换成弧度,因为标准函数cos( )和sin( )的参数必须是弧度。另外,因为a不是英文字母,也不是合法的C语言标识符,所以程序中改用alfa代替。
程序如下:
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
main( )
{
float a, b, c, s, alfa, af;
printf("输入三角形的两边A、B及其夹角α: \n");
scanf("%f%f%f", &a, &b, &alfa);
af = alfa * PI / 180;
c= sqrt(a *a+b*b-2*a*b* cos(af));
s=a*b*sin(af)/2;
printf("\n第三边C=%.1f \n面积S=%.1f\n", c, s);
}
运行结果如图2-17所示

图2-14 例2-16运行结果
程序中加入了输入提示:
printf("输入三角形的两边A、B及其夹角α: \n");
这是一种好习惯,当运行某程序时知道该输入什么样的数据。
例2-20 从键盘上输入一个3位数,然后将它反向输出。例如,若输入123,则输出321。
分析:根据题意,将输入的3位数(例如123)送入整型变量a中,只要将a除以10,将余数3输出,将商(整数)再除以10,再将余数2输出,最后将商1输出即可。
重点:(1)x % 10 : 取个位数字
(2) x / 10 : 去掉个位数字
源程序如下:
#include <stdio.h>
main( )
{ int a, b, c;
printf("输入一个3位整数:"); //输入提示
scanf("%d", &a); //假设输入123
b=a%10; // b=123%10=3,得到个位数3
printf("%d",b);
a=a/10; // a=123/10=12
b=a%10; // b=12%10=2,得到十位数2
printf("%d", b);
a=a/10; // a=12/10=1,得到百位数1
printf("%d\n",a );
}
运行结果如图2-18所示。

图2-18 例2-20运行结果
参考程序1:
#include <stdio.h>
main( )
{
int x, a, b, c;
// a存放个位数字 b存放十位数字 c 存百位数字 假设 x=123
printf("x=");
scanf("%d", &x);
a = x % 10; // a=3 取个位数字
x = x / 10; // x=12 去掉个位数字
b = x % 10; // b = 2 取个位数字
x = x / 10; // x=1 去掉个位数字
c = x % 10; // c=1 取个位数字
x = x / 10; // x=0 去掉个位数字
printf("%d%d%d", a, b, c);
}
参考程序2:
#include <stdio.h>
main( )
{
int x, a, b, c;
// a存百位数字 b存放十位数字 c存放个位数字
printf("x=");
scanf("%d", &x); // x=123
a = x / 100; // a =1
b = (x % 100)/10; //b=2
c = x % 10; //c=3
printf("%d%d%d", c, b, a);
}