【不就是C程序设计习题嘛】— 第二章:算法----程序的灵魂(2)

简介: 【不就是C程序设计习题嘛】— 第二章:算法----程序的灵魂(2)

6. 用伪代码表示第4题中各题的算法

1. 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相 反)。

begin
    醋 => A
    酱油 => B
    A => C
    B => A
    C => B
end

2. 依次将10个数输入,要求输出其中最大的数。

begin
    1 => i
    0 => max
    while i < 10
    {
        输入一个整数data
        if data > max
        {
            data => max
        }
    }
    print max
end

3. 有3个数a,b,c, 要求按大小顺序把他们输出。

begin
    input a
    input b
    input c
    if a > b
    {
        a => t
        b => a
        t => b
    }
    if c > a
    {
        c => t
        a => c
        t => a
    }
    if c > b
    {
        c => t
        b => c
        t => b
    }
    print a
    print b
    print c

4. 求1 + 2 + 3 + ... + 100。

begin
    1 => i
    0 => sum
    while i <= 100
    {
        sum + i => sum
        i + 1 => i
    }
    print sum
end

5. 判断一个数n能否同时被3和5整除。

begin
    input n
    if n % 3 == 0
    {
        if n % 5 == 0
        {
            print n能被3和5整除
        }
        else
        {
            print n不能被3和5整除
    }
    else
    {
        print n不能被3和5整除
    }
end

6. 求两个数m和n的最大公约数

begin
input m
input n
if m > n
{
m => t
n => m
t => n
}
while n != 0
{
m % n => r
m => n
r => n
}

7. 求方程ax^2 + bx + c = 0的根。

分别考虑:

有两个不相等的实根; 有两个相等的实根;

begin
    input a
    input b
    input c
    b*b - 4*a*c => p
    if p < 0
    {
        print 方程没有实根
    }
    if p == 0
    {
        print 方程有一个实根 -b/2a
    }
    if p > 0
    {
        print 方程有两个实根:
        print x1 = {-b + sqrt(b^2 - 4ac)}/2a
        print x1 = {-b - sqrt(b^2 - 4ac)}/2a
    }
end

7. 什么叫结构化程序设计?它的主要内容是什么?


结构化程序设计是进行以模块功能和处理过程设计为主的详细 设计的基本原则。其概念最早由E.W.Dijikstra在1965年提出的。结构化程序设计思想确实使程序执行效率提高 ,是软件发展的一个重要的里程碑,它的主要观点是采用自顶向下、逐步求精的程序设计方法;即首先把一个复杂的大问题分解为若干个小问题,然后对每个小问题编写出一个功能上相对独立程序块(模块)。最后将各程序块进行组装成完整的程序。各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口 。


具体来说,采用以下方法得到结构化程序:

1. 自顶向下

       程序设计的时候,应先考虑大的总体,后考虑细节,不要一开始就过多追求细节,否则会使我们很难进行下去,先从最上层总目标设计,逐步使问题具体化

2. 逐步细化

       对复杂问题,应设计一些子目标作为过渡,逐步细化

3. 模块化设计

       一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解成子目标,子目标再分解成具体的小目标,吧每一个小目标称为一个模块

4. 结构化编程

       编码实现

8. 用自顶向下、逐步细化的方法进行以下算法的设计:

1. 输出1900---2000年中是软黏的年份,符合下面两个条件之一的年份是闰年:

  • 能被4整除但不能被100整除
  • 能被100整除且能被400整除。


算法大体流程


1. 循环取1900到2000中的每一个年份


2. 对于每一个年份判断其是否是闰年


3. 是闰年则输出


判断一年是否是闰年:


1. 如果该年份内被4整除但是不能被100整除是闰年,否则不是闰年


2. 如果年份能被400整除则是闰年,否则不是闰年

2. 求ax^2 + bx + c = 0的根。分别考虑d = b^2 - 4ac大于0、等于0和小于0这三种情况。

1. 获取a b c的值


2. 计算b^2 - 4ac的结果并给p


3. 如果p < 0, 则方程没有实根


4. 如果p == 0,则方程有一个实根-b/2a


5. 如果p > 0, 则方程有两个实根 x1 = {-b + sqrt(b^2 - 4ac)}/2a x2 = {-b - sqrt(b^2 - 4ac)}/2a

3. 输入10个数,输出其中最大的一个数。

1. 给一个max保存最大值

2. 分别输入10个数,并对用每个数与max进行比较 如果该数大于max,则将该数给max

3. 输出max

相关文章
|
3月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
101 1
|
18天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
19 3
|
18天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
30天前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
|
29天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
23天前
|
缓存 分布式计算 监控
算法优化:提升程序性能的艺术
【10月更文挑战第20天】算法优化:提升程序性能的艺术
|
5月前
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
40 0
|
5月前
|
存储 人工智能 算法
程序与技术分享:Acwing算法笔记
程序与技术分享:Acwing算法笔记
|
5月前
|
人工智能 算法
程序技术好文:算法与数据结构
程序技术好文:算法与数据结构
|
5月前
|
算法 vr&ar C语言
程序技术好文:欧几里德算法
程序技术好文:欧几里德算法
42 0