实验二 选择结构程序设计

news2024/12/27 5:17:55
  • 实验名称

        实验二 选择结构程序设计

  • 实验目的

        (1)掌握关系运算符和逻辑运算符的使用方法,能够表达复杂的逻辑条件。

        (2)掌握if语句的使用方法,掌握多重条件下的if语句嵌套使用。

        (3)掌握switch语句的用法。

  • 实验题目
  1. 输入一个5位数,判断它是不是回文数(即12321是回文数,个位与万位相同,十位与千位相同)
  2. 输入三角形的3条边a、b、c,判断它们能否构成三角形。若能构成三角形,求出三角形的面积。(s=a+b+c2,三角形面积area=s(s-a)(s-b)(s-c) )
  3. 输入4个整数,要求按从小到大的顺序输出。
  4. 输入任意一个1~7之间的整数,将它们转换成对应的表示星期几的英文单词。例如:1转换成Monday,7转换成Sunday。
  5. 编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(用switch语句实现)。
  • 实验环境

        硬件:个人电脑;软件:Visual C++ 6.0

  • 实验代码及结果(程序运行结果请以截屏图给出)
  1. 源程序代码:

#include <stdio.h>

#include <stdbool.h>

bool isPalindrome(int num)

{

    // 提取万位数字

    int tenThousands = num / 10000;

    // 提取千位数字

    int thousands = (num / 1000) % 10;

    // 提取十位数字

    int tens = (num / 10) % 10;

    // 提取个位数字

    int ones = num % 10;

    // 比较相应位置上的数字是否相同

    if (tenThousands == ones && thousands == tens)

        return true;

    else

        return false;

}

int main()

{

    int num;

    printf("请输入一个5位数: ");

    scanf("%d", &num);

    // 判断输入的数字是否是回文数

    if (isPalindrome(num))

        printf("%d 是回文数\n", num);

    else

        printf("%d 不是回文数\n", num);

    return 0;

}

运行结果为:

  1. 源程序代码:

#include <stdio.h>

#include <math.h>

#include <stdbool.h>

bool judge(double a, double b, double c) // 判断输入的三条边能否构成三角形

{

    return (a + b > c) && (a + c > b) && (b + c > a);

}

double count(double a, double b, double c) // 计算三角形的面积

{

    double s = (a + b + c) / 2.0;

    return sqrt(s * (s - a) * (s - b) * (s - c));

}

int main()

{

    double a, b, c;

    printf("请输入三角形的三条边: ");

    scanf("%lf %lf %lf", &a, &b, &c);

    if (judge(a, b, c))

    {

        double area = count(a, b, c);

        printf("这三条边能构成三角形,其面积为: %.2lf\n", area);

    }

    else

        printf("这三条边不能构成三角形!\n");

    return 0;

}

运行结果为:

  1. 源程序代码:

#include <stdio.h> 

 

// 冒泡排序函数,用于对数组进行升序排序 

void Sort(int arr[], int n)

    for (int i = 0; i < n-1; i++)

    { 

        for (int j = 0; j < n-i-1; j++)

        { 

            if (arr[j] > arr[j+1])

            { 

                // 交换arr[j]和arr[j+1] 

                int temp = arr[j]; 

                arr[j] = arr[j+1]; 

                arr[j+1] = temp; 

            } 

        } 

    } 

 

int main()

    int numbers[4]; 

  

    printf("请输入4个整数: "); 

    for (int i = 0; i < 4; i++)  

        scanf("%d", &numbers[i]); 

 

    // 对输入的4个整数进行排序 

    Sort(numbers, 4); 

 

    // 输出排序后的结果 

    printf("排序后的结果为: "); 

    for (int i = 0; i < 4; i++) 

        printf("%d ", numbers[i]);   

 

    return 0; 

}

运行结果为:

  1. 源程序代码:

#include <stdio.h>

int main()

{

    int dayNumber;

    printf("请输入1~7之间的整数(代表星期一到星期日): ");

    scanf("%d", &dayNumber);

    switch (dayNumber)

    {

        case 1:

            printf("Monday\n");

            break;

        case 2:

            printf("Tuesday\n");

            break;

        case 3:

            printf("Wednesday\n");

            break;

        case 4:

            printf("Thursday\n");

            break;

        case 5:

            printf("Friday\n");

            break;

        case 6:

            printf("Saturday\n");

            break;

        case 7:

            printf("Sunday\n");

            break;

        default:

            printf("输入无效,请输入1~7之间的整数。\n");

            break;

    }

    return 0;

}

运行结果为:

  1. 源程序代码:

#include <stdio.h>

int main()

{

    double data1, data2, result;

    char op;

    printf("请输入第一个操作数、运算符(+, -, *, /)和第二个操作数:\n ");

    scanf("%lf %c %lf", &data1, &op, &data2);

    switch (op)

    {

        case '+':

            result = data1 + data2;

            break;

        case '-':

            result = data1 - data2;

            break;

        case '*':

            result = data1 * data2;

            break;

        case '/':

            result = data1 / data2;

            break;

        default:

            printf("错误:无效的运算符。\n");

            return 1;

    }

    printf("结果是: %.2lf\n", result);

    return 0;

}

运行结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第33周:运动鞋识别(Tensorflow实战第五周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 1.3 查看数据 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 再次检查数据 2.4 配置数据集 2.4.1 基本概念介绍 2.4.2 代码完成 三、构建CNN网络 四、训练模型 4.1 设置动态学习率 4.2 早停与保存最佳模型…

Robot Screw Theory (Product of Exponentials)机器人螺旋理论(指数积)

Screw Theory 螺旋理论 Screw theory uses the fact that every rigid body transformation can be expressed by a rotational and translational movement.螺旋理论利用了每个刚体变换都可以通过旋转和平移运动来表示这一事实。 Robert Ball developed the theory in 19th ce…

【maven-5】Maven 项目构建的生命周期:深入理解与应用

1. 生命周期是什么 ​在Maven出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;软件开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试及部署。虽然大家都在不停地做构建工作&#xff0c;但公司和公司间&#xff0c;项目和项目间&#xff0c;往往…

skywalking 配置elasticsearch持久化

下载和启动elasticsearch elasticsearch-7.17.25-linux-x86_64.tar.gz&#xff0c;解密文件tar -xvf elasticsearch-7.17.25-linux-x86_64.tar.gz 进入到bin目录&#xff0c;启动 elasticsearch -d 后台运行 下载skywalking服务包 apache-skywalking-apm-9.3.0.tar.gz&#x…

MySQL 复合查询

实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询。本节我们用一个简单的公司管理系统&#xff0c;有三张表EMP,DEPT,SALGRADE 来演示如何进行多表查询。表结构的代码以及插入的数据如下&#xff1a; DROP database IF EXISTS scott; CREATE database IF NOT EXIST…

数据集-目标检测系列- 海边漫步锻炼人检测数据集 person >> DataBall

数据集-目标检测系列- 海边漫步锻炼人检测数据集 person >> DataBall DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球…

【汇编语言】call 和 ret 指令(三) —— 深度解析汇编语言中的批量数据传递与寄存器冲突

文章目录 前言1. 批量数据的传递1.1 存在的问题1.2 如何解决这个问题1.3 示例演示1.3.1 问题说明1.3.2 程序实现 2. 寄存器冲突问题的引入2.1 问题引入2.2 分析与解决问题2.2.1 字符串定义方式2.2.2 分析子程序功能2.2.3 得到子程序代码 2.3 子程序的应用2.3.1 示例12.3.2 示例…

刷题日常(找到字符串中所有字母异位词,​ 和为 K 的子数组​,​ 滑动窗口最大值​,全排列)

找到字符串中所有字母异位词 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 题目分析&#xff1a; 1.将p里面的字符先丢进一个hash1中&#xff0c;只需要在S字符里面找到多少个和他相同的has…

Git 快速入门:全面了解与安装步骤

Git 快速入门&#xff1a;全面了解与安装步骤 一、关于Git 1.1 简介 Git 是一个开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为了更好地管理 Linux 内核开发而设计。 Git用于跟踪计算机文件的变化&#xff0c;特别是源代码文件…

私有库gitea安装

一 gitea是什么 Gitea是一款自助Git服务&#xff0c;简单来说&#xff0c;就是可以一个私有的github。 搭建很容易。 Gitea依赖于Git。 类似Gitea的还有GitHub、Gitee、GitLab等。 以下是安装步骤。 二 安装sqilite 参考&#xff1a; 在windows上安装sqlite 三 安装git…

[CTF/网络安全] 攻防世界 upload1 解题详析

[CTF/网络安全] 攻防世界 upload1 解题详析 考察文件上传&#xff0c;具体原理及姿势不再赘述。 姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下&#xff1a; 查看源代码&#xff1a; Array.prototype.contains function (obj) { var i this.…

基于HTML+CSS的房地产销售网站设计与实现

摘 要 房地产销售系统&#xff0c;在二十年来互联网时代下有着巨大的意义&#xff0c;随着互联网不断的发展扩大&#xff0c;一个方便直 观的房地产管理系统的网站开发是多么地有意义&#xff0c;不仅打破了传统的线下看房&#xff0c;线下获取资讯&#xff0c;也给房地产从业…

说说Elasticsearch拼写纠错是如何实现的?

大家好&#xff0c;我是锋哥。今天分享关于【说说Elasticsearch拼写纠错是如何实现的&#xff1f;】面试题。希望对大家有帮助&#xff1b; 说说Elasticsearch拼写纠错是如何实现的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…

如何把产品3D模型放到网站上进行3D展示或3D互动?

要将产品3D模型放到网站上进行3D展示或3D互动&#xff0c;可以按照以下步骤进行&#xff1a; 一、准备3D模型 使用3D建模软件&#xff08;如3ds Max、Maya、Blender、C4D等&#xff09;制作好产品的3D模型。 确保3D模型的格式是网站或平台所支持的&#xff0c;常见的格式包括…

SpringBoot集成Flowable

一、工作流介绍 1、概念 通过计算机对业务流程的自动化管理。工作流是建立在业务流程的基础上&#xff0c;一个软件的系统核心根本上还是系统的业务流程&#xff0c;工作流只是协助进行业务流程管理。 解决的是&#xff1a;在多个参与者之间按照某种预定义的规则自动进行传递文…

1-1 Gerrit实用指南

注&#xff1a;学习gerrit需要拥有git相关知识&#xff0c;如果没有学习过git请先回顾git相关知识点 黑马程序员git教程 一小时学会git git参考博客 git 实操博客 1.0 定义 Gerrit 是一个基于 Web 的代码审查系统&#xff0c;它使用 Git 作为底层版本控制系统。Gerrit 的主要功…

鸿蒙开发:自定义一个任意位置弹出的Dialog

前言 鸿蒙开发中&#xff0c;一直有个问题困扰着自己&#xff0c;想必也困扰着大多数开发者&#xff0c;那就是&#xff0c;系统提供的dialog自定义弹窗&#xff0c;无法实现在任意位置进行弹出&#xff0c;仅限于CustomDialog和Component struct的成员变量&#xff0c;这就导致…

Matlab模块From Workspace使用数据类型说明

Matlab原文连接&#xff1a;Load Data Using the From Workspace Block 模型&#xff1a; 从信号来源的数据&#xff1a; timeseries 数据&#xff1a; sampleTime 0.01; numSteps 1001;time sampleTime*[0:(numSteps-1)]; time time;data sin(2*pi/3*time);simin time…

架构01-演进中的架构

零、文章目录 架构01-演进中的架构 1、原始分布式时代&#xff1a;Unix设计哲学下的服务探索 &#xff08;1&#xff09;背景 时间&#xff1a;20世纪70年代末到80年代初计算机硬件&#xff1a;16位寻址能力、不足5MHz时钟频率的处理器、128KB左右的内存转型&#xff1a;从…

社群赋能电商:小程序 AI 智能名片与 S2B2C 商城系统的整合与突破

摘要&#xff1a;本文聚焦于社群在电商领域日益凸显的关键地位&#xff0c;深入探讨在社群粉丝经济迅猛发展背景下&#xff0c;小程序 AI 智能名片与 S2B2C 商城系统如何与社群深度融合&#xff0c;助力电商突破传统运营局限&#xff0c;挖掘新增长点。通过分析社群对电商的价值…