计241 作业2:C程序设计初步

问题 A: C语言实验——计算A+B(顺序结构)

思路讲解:

这个直接计算a+b就好,没有什么困难的,用来熟悉环境最适合不过


代码实现:

#include<stdio.h>int main()
{int a,b;scanf("%d %d",&a,&b);printf("%d\n",a+b);return 0;
}

问题 B: 电子欢迎器

思路讲解:

这个就是学会使用字符数组,学会字符数组的输入输出,注意scanf这里不用加&,这个单独记住就好,然后就是空格不要去数,直接复制粘贴就好,然后注意换行,不然就格式错误了。

代码实现:

#include<stdio.h>int main()
{char name[20];char howetown[20];scanf("%s",name);scanf("%s",howetown);printf("******************************************\n");printf("             Welcome\n");printf("             %s(%s)\n",name,howetown);printf("******************************************\n");return 0;
}

问题 C: 输入两个整数,进行四则运算并输出结果

 这道题主要是数据比较友好,保证了a一定能够整除b,否则的话就要去考虑a/b为小数的情况 ,到时候就需要使用浮点数了,要不两个int做除法遵循向下取整的原则,
https://blog.csdn.net/weixin_47712251/article/details/130675475
给你们找了一个博客,里面介绍了除法,包括整数的和浮点数的

我再自己额外说一点吧
 

C语言中的除法操作是通过运算符 / 来实现的。根据被除数和除数的类型,C语言中的除法可以分为以下几种情况:

1. 整数除法

  • 定义:当被除数和除数都是整数时,C语言执行整数除法。
  • 特点:结果会是一个整数,任何小数部分会被截断(向下取整)。

示例

#include <stdio.h>int main() {int a = 10;int b = 3;int result = a / b;  // result将是3,忽略了小数部分printf("整数除法: %d / %d = %d\n", a, b, result);return 0;
}

2. 浮点除法

  • 定义:当被除数或除数是浮点数(floatdouble类型)时,C语言执行浮点除法。
  • 特点:结果将是一个浮点数,可以包含小数部分。

示例
 

#include <stdio.h>int main() {float a = 10.0;float b = 3.0;float result = a / b;  // result将是3.333333printf("浮点除法: %.2f / %.2f = %.2f\n", a, b, result);return 0;
}

3. 整数与浮点数的除法

  • 定义:如果一个整数被一个浮点数除,结果将是浮点数。

示例
 

#include <stdio.h>int main() {int a = 10;float b = 3.0;float result = a / b;  // result将是3.333333printf("整数与浮点数的除法: %d / %.2f = %.2f\n", a, b, result);return 0;
}

4. 除数为零的情况

  • 注意:在进行除法运算时,必须确保除数不为零。如果除数为零,程序会导致运行时错误,通常会引发一个“除以零”错误。

示例
 

#include <stdio.h>int main() {int a = 10;int b = 0;if (b != 0) {int result = a / b;printf("结果: %d / %d = %d\n", a, b, result);} else {printf("错误: 除数不能为零!\n");}return 0;
}

总结

  • C语言支持整数除法和浮点除法。
  • 在进行除法运算时,注意检查除数是否为零,以避免程序崩溃。
  • 根据不同的数据类型,结果的类型也会有所不同。

通过理解这些基本概念,可以在C语言中有效地进行除法操作。
 

C题代码: 

#include<stdio.h>
int main(){int a,b;scanf("%d %d",&a,&b);printf("%d\n",a+b);printf("%d\n",a-b);printf("%d\n",a*b);printf("%d",a/b);return 0;
}

 问题 D: 三个整数和、积与平均值
 

思路讲解:

这道题的计算平均数就利用到了我刚才C题中所介绍的除法的应用,其他再没有什么了,

其实关于这个转化为浮点数的方法有很多种,

在这里我介绍一下类型转化吧

1. double a = b;

  • 类型:隐式类型转换(或自动类型转换)
  • 描述:在这一行代码中,变量 b 的值被隐式转换为 double 类型,并赋值给 a。这意味着如果 b 是一个其他类型(如 int 或 float),编译器会自动将其转换为 double 类型,而无需显式地指定转换。这个过程通常是安全的,因为 double 类型的范围和精度比其他类型要大。

示例

#include <stdio.h>int main() {int b = 5;        // b 是一个整数double a = b;    // 隐式转换为 doubleprintf("%f\n", a); // 输出: 5.000000return 0;
}

2. (double) b

  • 类型:显式类型转换(或强制类型转换)
  • 描述:在这一行代码中,(double) b 表示将 b 强制转换为 double 类型。这里的强制类型转换是通过在变量前加上类型名称来实现的。它明确地告诉编译器将 b 转换为 double 类型,可以用于需要指定类型的上下文。

示例

#include <stdio.h>#include <stdio.h>int main() {int b = 5;              // b 是一个整数double a = (double) b; // 显式转换为 doubleprintf("%f\n", a);     // 输出: 5.000000return 0;
}

总结

  • 隐式类型转换double a = b; 会自动将 b 转换为 double 类型。
  • 显式类型转换(double) b 明确要求将 b 转换为 double 类型,通常在需要特定类型的上下文中使用。

在大多数情况下,隐式转换会更简洁,而显式转换则提供了更高的控制和可读性,尤其是在复杂的表达式中。

这道题还有关于浮点数的一些知识点,比如,float和double的区别,float用%f,double 使用%lf,
%.2lf是保留小数点后两位,同学们可以去CSDN上进行自行搜索,不过也不着急,反正你们后续做题也就会了


代码实现:

#include<stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d %d %.2lf",a+b+c,a*b*c,(a+b+c)/3.0);//因为3.0是一个浮点数,所以整数与浮点数做除法,结果一个浮点数return 0;
}

 或者是

#include<stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d %d %.2lf",a+b+c,a*b*c,(double)(a+b+c)/3);return 0;
}

问题 E: C语言实验——圆柱体计算



思路讲解:

这里题干说的定义,我使用了define,你们可能还没学,不过使用double PI=3.1415926也一样没什么区别

代码实现:
 

#include<stdio.h>
#define PI 3.1415926
int main()
{double r,h;scanf("%lf %lf",&r,&h);double C=2*PI*r;double S1=PI*r*r;double S2=C*h;double V=S1*h;printf("%.2lf %.2lf %.2lf %.2lf",C,S1,S2,V);return 0;
}

问题 F: 输出两个整数中较小的数(1)


思路讲解
 

这道题题干也说了,有很多种做法,那么我就来简单介绍几种吧


1.写条件判断语句,也就是if else 语句
#include<stdio.h>
int main()
{int a,b;scanf("%d %d",&a,&b);if(a<b){printf("min=%d",a);}else{printf("min=%d",b);}return 0;
}
2.使用函数

C++中自带min函数和max函数,而C语言中没有,那么我们可以自己手写,min函数和max函数,我想函数你们肯定还没学,所以有能力的同学可以先自行研究着,如果实在理解不了,等后期你们学了函数就明白了
 

#include<stdio.h>int min(int a,int b) //min函数,作用是返回参数a和参数b当中较小的那一个 int类型的函数
{if(a>b){return b;}else{return a;}
}int main()
{int x,y;scanf("%d %d",&x,&y);printf("min=%d\n",min(x,y));return 0;
}

3,使用三目运算符
 

所谓的三目运算符,这里指的就是?:表达式,那么何为?:表达式

三目运算符(Ternary Operator),也称为条件运算符,是一种简洁的条件判断表达式,通常用于替代简单的 if-else 语句。它的基本形式为:
 

条件 ? 表达式1 : 表达式2

1. 基本语法

  • 条件:一个布尔表达式(返回真或假)。

  • 表达式1:当条件为真时返回的值或表达式。

  • 表达式2:当条件为假时返回的值或表达式。

2. 工作原理

三目运算符根据条件的真值来决定返回哪一个表达式的值:

  • 如果条件为真(true),则返回表达式1。

  • 如果条件为假(false),则返回表达式2。

#include<stdio.h>int main()
{int x,y;scanf("%d %d",&x,&y);printf("min=%d\n",x>y?y:x);return 0;
}

问题 G: 输出两个整数中较小的数(2)
 
 

这道题和上一道题一样的,就略过了

问题 H: 求三角形面积 

 

思路讲解:

 

预备知识的话,就是海伦公式,然后就是判断是否能构成三角形条件,这个你们都很熟,任意两边之和大于第三边,


这里补充一下开根号的函数
sqrt,使用这个函数之前需要引入math头文件

 代码实现:
 

#include<stdio.h>
#include<math.h>
int main()
{double a,b,c,s,area;scanf("%lf %lf %lf",&a,&b,&c);if(a+b>c && a+c>b && b+c>a){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("area=%.2lf",area);}else{printf("error input");}return 0;
}

问题 I: 夏令营的年龄



思路讲解:



其实就是那道求最小值的题,现在只不过是三个数,除了求最小值,还要求最大值,这道题实现的方式也很多,可以if else语句,可以使用三目运算符,可以使用遍历,函数也可以

来吧:

 

//使用if和else语句进行判断
#include <stdio.h>
int main()
{int age1,age2,age3;scanf("%d %d %d",&age1,&age2,&age3);int max_age=age1;if(age2>max_age){max_age=age2;}if(age3>max_age){max_age=age3;}int min_age=age1;if(age2<min_age){min_age=age2;}if(age3<min_age){min_age=age3;}int diff=max_age-min_age;printf("%d",diff);return 0;
}

#include<stdio.h>int main()
{int age1,age2,age3,max_age,min_age,diff;scanf("%d %d %d",&age1,&age2,&age3);///寻找最大年龄if(age1>age2 && age1>age3){max_age=age1;}else if(age2>age1 && age2>age3){max_age=age2;}else{max_age=age3;}///寻找最小年龄if(age1<age2 && age1<age3){min_age=age1;}else if(age2<age1 && age2<age3){min_age=age2;}else{min_age=age3;}diff=max_age-min_age;printf("%d\n",diff);return 0;
}
//三目运算符
#include<stdio.h>int main()
{int age1,age2,age3;scanf("%d %d %d",&age1,&age2,&age3);int max_age=(age1>age2?age1:age2)>age3?(age1>age2?age1:age2):age3;int min_age=(age1<age2?age1:age2)<age3?(age1<age2?age1:age2):age3;int diff=max_age-min_age;printf("%d\n",diff);return 0;
}
//使用遍历数组来实现
#include<stdio.h>int main()
{int a[4];//开数组//数组的下标是从0开始的,一共是3个元素,因此下标是0,1,2,a[0],a[1],a[2]for(int i=0;i<3;i++){scanf("%d",&a[i]);}int Max=0; //求最大的年龄,初始化为无穷小,这里年龄最小为0int Min=200;//求最小的年龄,初始化为无穷大,这里年龄最大初始化为200吧for(int i=0;i<3;i++){if(a[i]>Max){Max=a[i];}if(a[i]<Min){Min=a[i];}}//printf("%d\n",Max);//printf("%d\n",Min);int ans=Max-Min;printf("%d",ans);return 0;
}

问题 J: 展示十年的年龄



思路讲解:

 

这个的话,其实就是练习使用for循环语句,只要你会了for循环,这道题没什么问题,还有很多同学出现了格式错误,大部分是忘记加换行符了


代码实现:

#include<stdio.h>
int main()
{int age;scanf("%d",&age);printf("*****************************************\n");for(int i=0; i<10; i++){printf("%d ",age+i);}printf("\n");for(int i=0; i<10; i++){printf("%d ",age+i*2);}printf("\n");printf("*****************************************");return 0;
}


 

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

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

相关文章

[JavaEE] IP协议

目录 一、 IP协议 1.1 基本概念 1.2 协议头格式 1.3 特殊IP 二、 地址管理 2.1 网段划分 2.2 CIDR(Classless Interdomain Routing) 2.3 私有IP地址和公网IP地址 2.4 NAT(Network Address Translation)-网络地址转换 2.5 路由选择 三、数据链路层 3.1 认识以太网 3…

监控易监测对象及指标之:全面监控Sybase_New数据库

随着企业数据量的不断增长和业务的复杂化&#xff0c;数据库的稳定性和性能成为了保障业务连续性的关键因素。Sybase_New数据库作为众多企业选择的数据管理解决方案&#xff0c;其稳定性和性能对于企业的运营至关重要。 为了确保Sybase_New数据库的稳定运行和高效性能&#xff…

【CSS in Depth 2 精译_042】6.4 CSS 中的堆叠上下文与 z-index(下)——深入理解堆叠上下文

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…

Adobe Photoshop 2024 v25.12 (macOS, Windows) 发布下载 - 照片和设计软件

Adobe Photoshop 2024 v25.12 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adobe XD…

【unity进阶知识3】封装一个事件管理系统

前言 框架的事件系统主要负责高效的方法调用与数据传递&#xff0c;实现各功能之间的解耦&#xff0c;通常在调用某个实例的方法时&#xff0c;必须先获得这个实例的引用或者新实例化一个对象&#xff0c;低耦合度的框架结构希望程序本身不去关注被调用的方法所依托的实例对象…

收银系统源码-ERP进销存解决方案

收银系统目前已经成为门店日常经营的必备软件工具&#xff0c;功能一般需涵盖线下门店收银&#xff0c;ERP进销存、线上商城等。一套好的ERP进销存模块也能很大程度帮助门店经营管理门店。 ERP进销存功能涵盖了商品的采购、销售、调拨、盘点、库存管理、资金管理等全链路管理&…

对话总结:Scale AI的创始人兼CEO Alex Wang

AI的三大支柱 计算:主要由大公司如NVIDIA推动。算法:顶尖实验室如OpenAI主导。数据:Scale致力于推动数据进展。前沿数据的重要性 与人类智能相比较,前沿数据是AI发展的关键。互联网数据是机器与人类合作的结果。语言模型的发展 第一阶段:原始的Transformer论文和GPT的小规…

初识ZYNQ——FPGA学习笔记15

一、ZYNQ简介 ZYNQ&#xff1a;Zynq-7000 All Programmable SoC&#xff08;APSoC&#xff09;&#xff0c;赛灵思公司&#xff08;AMD Xilinx&#xff09;推出的新一代全可编程片上系统 PS&#xff1a;Processing System&#xff0c;处理系统 PL&#xff1a;Program Logic&…

html TAB切换按钮变色、自动生成table--使用函数优化结构

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

RTA-OS Port Guide学习(三)-基于S32K324 OS

文章目录 前言HardwareSupported DevicesRegister UsageInitializationModificationRequired OS resourcesInterruptsInterrupt Priority LevelsAllocation of ISRs to Interrupt VectorsVector TableWriting Category 1 Interrupt HandlersWriting Category 2 Interrupt Handl…

Qualitor processVariavel.php 未授权命令注入漏洞复现(CVE-2023-47253)

0x01 漏洞描述&#xff1a; Qualitor 8.20及之前版本存在命令注入漏洞&#xff0c;远程攻击者可利用该漏洞通过PHP代码执行任意代码&#xff0c;利用难度较低危害较大。 0x02 影响版本&#xff1a; Qualitor < 8.20 0x03 搜索语句&#xff1a; Fofa:app"Qualitor-…

服务运营 | 运营前沿:生成式AI改变医疗保健的运作方式

编者按 人工智能正在重塑医疗保健的运作方式&#xff0c;减少医生负担并优化病人的就医体验。从解答患者疑问到开发新药&#xff0c;人工智能正在快速革新医疗保健这一行业。编者团队此次将关注《哈佛商业评论》于2023年11月27日发布的文章《GenAI Could Transform How Health …

数字乡村解决方案-3

1. 国家大数据战略与数字乡村 中国第十三个五年规划纲要强调实施国家大数据战略&#xff0c;加快建设数字中国&#xff0c;推进数据资源整合和开放共享&#xff0c;保障数据安全&#xff0c;以大数据助力产业转型升级和提高社会治理的精准性与有效性。 2. 大数据与数字经济 …

【韩顺平Java笔记】第2章:Java概述

按视频的标号来对应小标题&#xff0c;自用学习笔记 文章目录 5. 内容梳理6. 程序举例6.1 什么是程序 7. Java故事7.1 Java诞生小故事7.2 Java技术体系平台 8. Java特性8.1 Java重要特点 9. sublime10. jdk介绍10.1 Java运行机制及运行过程10.1.1 Java虚拟机&#xff08;JVM&a…

无人机飞手入伍当兵技术优势分析

随着现代战争形态的不断演变&#xff0c;无人机技术在军事领域的应用日益广泛&#xff0c;成为提升军队作战能力的重要手段。对于无人机飞手而言&#xff0c;其专业技能和实战经验在入伍当兵后能够转化为显著的技术优势&#xff0c;为国防事业贡献重要力量。以下是从专业技能优…

【学习笔记】TLS/SSL握手之Records

TLS / SSL会话是由记录&#xff08;Records&#xff09;所组成&#xff0c;有4种records HandshakeAlertChange Cipher SpecApplication DataHandshake和Alert Records被分为子类型&#xff08;Subtypes&#xff09;&#xff1a; Handshake&#xff1a;Client HelloHandshake&a…

Miniforge详细安装教程(macOs和Windows)

(注&#xff1a;主要是解决商业应用anaconda收费问题&#xff0c;这是轻量级的代替&#xff0c;个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器&#xff0c;类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境&#xff0c;专注于…

Java新手指南:从菜鸟到编程大师的趣味之路-多态

这里是Themberfue 本章讲的是Java三大特性之一的多态&#xff0c;也是最后一个特性 多态概念 既然我们要学习多态&#xff0c;首先得知道这玩意儿到底是个什么东西&#xff1f; 通俗地说&#xff0c;多态其实就是多种形态。具体来说就是去完成某个行为&#xff0c;当不同的对象…

Secret Configmap

应用启动过程中可能需要一些敏感信息&#xff0c;比如访问数据库的用户名&#xff0c;密码或者秘钥&#xff0c;讲这些信息直接保存在容器镜像中显然不合适&#xff0c;kubernetes提供的解决方案就是Secret Secret会以密文的方式存储数据&#xff0c;避免了直接在配置文件中保…

tauri开发配置文件和文件夹访问路径问题

文件夹没权限&#xff1a;Unhandled Promise Rejection: path not allowed on the configured scope: /Users/song/Library/Application Support/com.pakeplus.app/assets/default.png 没有文件夹&#xff0c;需要先创建&#xff1a;Unhandled Promise Rejection: path: /Users…