【C语言】编程初学者入门训练(6)
文章目录
- 51. 计算一元二次方程
- 52. 获取月份天数
- 53. 简单计算器
- 54. 线段图案
- 55. 正方形图案
- 56. 直角三角形图案
- 57. 翻转直角三角形图案
- 58. 带空格直角三角形图案
- 59. 金字塔图案
- 60. 翻转金字塔图案
51. 计算一元二次方程
-
问题描述:从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4ac的三种情况计算并输出方程的根。
-
输入描述:多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。
-
输出描述:针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。
-
如果a = 0,输出“Not quadratic equation”;
-
如果a ≠ 0,分三种情况:
-
△ = 0,则两个实根相等,输出形式为:x1=x2=…。
-
△ > 0,则两个实根不等,输出形式为:x1=…;x2=…,其中x1 <= x2。
-
△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2a),虚部= sqrt(-△ ) / (2a)所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。
-
-
-
示例1:
- 输入:2.0 7.0 1.0
- 输出:x1=-3.35;x2=-0.15
-
示例2:
- 输入:0.0 3.0 3.0
- 输出:Not quadratic equation
-
示例3:
- 输入:1 2 1
- 输出:x1=x2=-1.00
-
示例4:
- 输入:2 2 5
- 输出:x1=-0.50-1.50i;x2=-0.50+1.50i
-
示例5:
- 输入:1 0 1
- 输出:x1=0.00-1.00i;x2=0.00+1.00i
-
代码实现:
#include<stdio.h>
#include<math.h>
int main()
{double a = 0.0;double b = 0.0;double c = 0.0;while (scanf("%lf %lf %lf", &a, &b, &c) != EOF){if (a == 0){printf("Not quadratic equation\n");}else{double deta = b * b - 4 * a * c;if (deta == 0){if (a < 0){printf("x1=x2=%.2lf\n", (-b - sqrt(deta)) / (2 * a));//因为测试用例4 0 0会输出-0.00 所以加一个判断条件}else{printf("x1=x2=%.2lf\n", (-b + sqrt(deta)) / (2 * a));}}else if (deta > 0){printf("x1=%.2lf;x2=%.2lf\n", ((-b - sqrt(deta)) / (2 * a)), ((-b + sqrt(deta)) / (2 * a)));}else{double real = -b / (2 * a);double image = sqrt(-deta) / (2 * a);if (image < 0)//测试用例的 -1 5 -10 会出现 -- +- 所以加判断条件 把-号消掉{image = (-image);}printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n", real, image, real, image);}}}return 0;
}
52. 获取月份天数
- 问题描述:KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
- 输入描述:多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
- 输出描述:针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
- 示例:
- 输入:2008 2
- 输出:29
- 代码实现:
#include <stdio.h>int main()
{int year,month;while(scanf("%d %d",&year,&month) != ROF){int month1[] = {31,29,31,30,31,30,31,31,30,31,30,31};int month2[] = {31,28,31,30,31,30,31,31,30,31,30,31};if((0 == year%4 && 0 != year%100)||(0 == year%400)){printf("%d\n",month1[month - 1]);}else{printf("%d\n",month2[month - 1]);}}return 0;
}
53. 简单计算器
-
问题描述:KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”
-
数据范围:字符串长度满足 3≤n≤50 ,保证运算符是一个char类型字符。
-
输入描述:输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。
-
输出描述:输出为一行。
- 如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
- 如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
- 如果操作数2等于0.0,则输出“Wrong!Division by zero!”。
-
示例1:
- 输入:1.0+3.0
- 输出:1.0000+3.0000=4.0000
-
示例2:
- 输入:1.0;4.0
- 输出:Invalid operation!
-
示例3:
- 输入:44.0/0.0
- 输出:Wrong!Division by zero!
-
代码实现:
#include <stdio.h>int main()
{double n1,n2;char op;while(scanf("%lf%c%lf",&n1,&op,&n2) != EOF){switch(op){case '+':printf("%.4lf+%.4lf=%.4lf\n",n1,n2,n1+n2);break;case '-':printf("%.4lf-%.4lf=%.4lf\n",n1,n2,n1-n2);break;case '*':printf("%.4lf*%.4lf=%.4lf\n",n1,n2,n1*n2);break;case '/':if(0.0 == n2){ printf("Wrong!Division by zero!\n");break;}else{printf("%.4lf/%.4lf=%.4lf\n",n1,n2,n1/n2);break;}default:printf("Invalid operation!\n");break;}}return 0;
}
54. 线段图案
-
问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
-
输入描述:多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
-
输出描述:针对每行输入,输出占一行,用“*”组成的对应长度的线段。
-
示例:
输入:102
输出:************
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){while(n--) printf("*");putchar('\n');}return 0;
}
55. 正方形图案
-
问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“ * ”组成的正方形图案。
-
输入描述:多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。
-
输出描述:针对每行输入,输出用“”组成的对应边长的正方形,每个“”后面有一个空格。
-
示例1:
输入:4
输出:* * * ** * * ** * * ** * * *
- 示例2:
输入:5
输出:* * * * ** * * * ** * * * ** * * * ** * * * *
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){printf("* ");}printf("\n");}}return 0;
}
56. 直角三角形图案
- 问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。
- 输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
- 输出描述:针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。
- 示例1:
输入:4
输出:** ** * ** * * *
- 示例2:
输入:5
输出:** ** * ** * * ** * * * *
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < n;i++){for(int j = 0;j <= i;j++){printf("* ");}putchar('\n');}}return 0;
}
57. 翻转直角三角形图案
- 问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“ * ”组成的翻转直角三角形图案。
- 输入描述:多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“*”的数量,也表示输出行数。
- 输出描述:针对每行输入,输出用“”组成的对应长度的翻转直角三角形,每个“”后面有一个空格。
- 示例1:
输入:5
输出:* * * * ** * * ** * ** **
- 示例2:
输入:6
输出:* * * * * ** * * * ** * * ** * ** **
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < n;i++){for(int j = n;j > i;j--){printf("* ");}putchar('\n');}}return 0;
}
58. 带空格直角三角形图案
-
问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“ * ”组成的带空格直角三角形图案。
-
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
-
输出描述:针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。
-
示例1:
输入:5
输出:* * * * * * * * * *
* * * * *
- 示例2:
输入:4
输出:* * * * * *
* * * *
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < n;i++){//第一行打印4对空格,第二行三对,3行两对...for(int j = 0;j < n-i-1;j++){printf(" ");//打印空格}//第1打印0+1颗*,第二行打印1+1颗*,第三行三颗*...for(int j = 0;j < i + 1 ;j++){printf("* ");}putchar('\n');}}return 0;
}
59. 金字塔图案
- 问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“ * ”组成的金字塔图案。
- 输入描述:多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,,也表示输出行数。
- 输出描述:针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。
示例1:
输入:4
输出:* * * * * *
* * * *
- 示例2:
输入:5
输出:* * * * * * * * * *
* * * * *
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < n;i++){for(int j = 0;j < n-i-1;j++){printf(" ");}for(int j = 0;j <= i;j++){printf("* ");}putchar('\n');}}return 0;
}
60. 翻转金字塔图案
- 问题描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“ * ”组成的翻转金字塔图案。
- 输入描述:多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。
- 输出描述:针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。
- 示例1:
输入:5
输出:
* * * * * * * * * * * * * * *
- 示例2:
输入:6
输出:
* * * * * * * * * * * * * * * * * * * * *
- 代码实现:
#include <stdio.h>int main()
{int n;while(scanf("%d",&n) != EOF){//打印n行for(int i = 0;i < n;i++){//先根据i值来打印空格,i为0时不打印空格,i为1时打印一个空格...for(int j = 0;j < i;j++){printf(" ");}//第一行打印5组*+空格,第二行4组...for(int j = 0;j <= n-i-1;j++){printf("* ");}putchar('\n');}}return 0;
}
相关文章:
【C语言】编程初学者入门训练(6)
文章目录51. 计算一元二次方程52. 获取月份天数53. 简单计算器54. 线段图案55. 正方形图案56. 直角三角形图案57. 翻转直角三角形图案58. 带空格直角三角形图案59. 金字塔图案60. 翻转金字塔图案51. 计算一元二次方程 问题描述:从键盘输入a, b, c的值,编…...
Java笔记-异常相关
一、异常概述与异常体系结构 Error:Java虚拟机无法解决的严重问题: JVM系统内部错误,资源耗尽,如:StackOverflow \OOM堆栈溢出 处理办法:只能修改代码,不能编写处理异常的代码 Exception:可以处理的异常 &…...
pytest-xdist测试用例并发
官方文档:pytest-xdist初次使用参考:Python测试框架pytest(22)插件 - pytest-xdist(分布式执行)pytest测试框架系列 - Pytest pytest-xdist 分布式、多进程并发执行用例你会用吗?Pytest-xdist并…...
大数据---Hadoop安装jdk简易版
编写自动安装jdk的shell脚本 完整流程: 大数据—Hadoop安装教程(一) 文章目录编写自动安装jdk的shell脚本上传压缩包编写shell脚本vim autoinstall.sh解压更名添加环境运行上传压缩包 在opt目录下创建连个目录install和soft 将压缩包上传到install目录…...
【0基础学爬虫】爬虫基础之爬虫的基本介绍
大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学…...
Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis
接下来这个章节将继续来完成 《新闻管理系统》 这个项目,上一章节我们完成了 “发表新闻” 这个功能,在发表新闻后,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通…...
Vue拼图验证
vue-puzzle-verification 封装的一个用于登录验证的拼图的vue组件,使用了canvas画图和拖拽的一些技巧。支持大小、形状、图片、偏差、范围的自定义。 一、安装使用 npm install vue-puzzle-verification 二、main.js里引入 import PuzzleVerification from vue…...
这个神器,让 Python 爬虫如此简单
相信大家应该都写过爬虫,简单的爬虫只需要使用 requests 即可。遇到复杂的爬虫,就需要在程序里面加上请求头和参数信息。类似这种: 我们一般的步骤是,先到浏览器的网络请求中找到我们需要的请求,然后将请求头和参数信…...
网络舆情公关必须把握的四项基本原则
在这个网络媒体占主导的时代,舆情公关进入了网络自媒体时代,有时候可能企业认为是小事儿,也可能在网上掀起轩然大波,所以网络舆情优化成为营销推广工作中重要一环。网络舆情优化的目标是让网络舆论对企业经营发展有利的方向发展&a…...
Kafka技术认知
文章目录概念理解名词解释基本架构工作流程Kafka的特性概念理解 Kafka是分布式的基于发布-订阅消息队列。是一个分布式、支持分区的、多副本的,基于 Zookeeper 协调的分布式消息中间件系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景…...
2022年新一代kaldi团队技术输出盘点
目录 1. 技术创新 1.1 Pruned RNN-T loss 1.2 RNN-T 的快速 GPU 解码 1.3 多码本量化索引的知识蒸馏 1.4 RNN-T 和 CTC 的低延时训练 1.5 Zipformer 1.6 Small tricks 2. 模型部署 2.1 Sherpa 2.1 Sherpa-ncnn 3. 更多的 recipe 和模型 参考资料 1. 技术创新 1.1 …...
数据结构复习(三)顺序表oj
目录 27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外…...
2023.2.10每日一题
每日一题题目描述解题核心解法一:模拟题目描述 题目链接:2553. 分割数组中数字的数位 给你一个正整数数组nums,请你返回一个数组answer,你需要将nums中每个整数进行数位分割后,按照nums中出现的相同顺序放入答案数组…...
Homekit智能家居DIY一智能吸顶灯
买灯要看什么因素 好灯具的灯光可以说是家居的“魔术师”,除了实用的照明功能外,对细节的把控也非常到位。那么该如何选到一款各方面合适的灯呢? 照度 可以简单理解为清晰度,复杂点套公式来说照度光通量(亮度&#x…...
关于 OAuth 你又了解哪些?
作者罗锦华,API7.ai 技术专家/技术工程师,开源项目 pgcat,lua-resty-ffi,lua-resty-inspect 的作者。 OAuth 的背景 OAuth,O 是 Open,Auth 是授权,也就是开放授权的意思。OAuth 始于 2006 年&a…...
18. 构造函数和析构函数,构造函数的分类和调用
构造函数和析构函数 构造函数 //没有返回值 不用写void//函数名 与 类名相同//可以有参数 ,可以发生重载//构造函数 由编译器自动调用一次 无须手动调用析构函数 //没有返回值 不用写void函数名 与类名相同 函数名前 加 ~不可以有参数 ,不可以发生重载析构函数 也是由编译器自…...
JavaScript设计模式es6(23种)
设计模式简介设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的…...
设计「业务」与「技术」方案
三天研发,两天设计; 01【优先做设计方案】 职场中的那些魔幻操作,研发最烦的是哪个? 作为一个数年且资深的互联网普通开发,可以来说明一下为什么是:缺乏设计; 面对业务需求的时候,…...
C/C++:预处理(下)
目录 一.回顾程序的编译链接过程 二. 预处理之预定义#define 1.#define定义的标识符 2.#define定义的宏 3.带副作用的表达式作为宏实参 4.两个经典的宏 5.#define使用的一些注意事项小结 6.宏与函数的比较 7.#undef 附:关于#define的三个冷知识 三. 条件…...
2023互联网相关岗位转行与就业选择的简单分析
文章目录1、城市2、岗位1、城市 能找得到工作的城市,可能主要也就这些base了 2、岗位 主要技术岗位 Python 侧重人工智能,人工智能门槛高大家心知肚明。如果学python 不走人工智能,只走单纯的后端开发,不管从薪资还是岗位数量…...
OpenClaw技能分享:GLM-4.7-Flash驱动的邮件自动处理系统
OpenClaw技能分享:GLM-4.7-Flash驱动的邮件自动处理系统 1. 为什么需要自动化邮件处理 每天早晨打开邮箱,看到堆积如山的未读邮件总让人头皮发麻。作为一个小团队的负责人,我经常需要处理客户咨询、内部沟通、会议邀请等各种类型的邮件。最…...
告别重复造轮子,用快马ai一键生成tomcat高效开发工具集与配置模板
今天想和大家分享一个提升Tomcat开发效率的小技巧。作为一个经常和Tomcat打交道的开发者,我发现每次新建项目都要重复写一些基础工具类,特别浪费时间。最近在InsCode(快马)平台上尝试用AI生成了一套可复用的工具集,效果很不错。 数据库连接池…...
vLLM-v0.17.1参数详解:--disable-log-stats与--log-level日志调优
vLLM-v0.17.1参数详解:--disable-log-stats与--log-level日志调优 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,以其出色的吞吐量和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室开发,现在…...
OpCore-Simplify:终极OpenCore EFI配置自动化解决方案
OpCore-Simplify:终极OpenCore EFI配置自动化解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而烦恼吗&am…...
从‘各玩各的’到‘协同作战’:聊聊多传感器SLAM中坐标系对齐的那些‘坑’与最佳实践
从‘各玩各的’到‘协同作战’:多传感器SLAM坐标系对齐的工程实践指南 当激光雷达的轨迹点云与相机的视觉路径在三维空间中"貌合神离",工程师们往往面临一个关键抉择:是强行统一时间基准,还是重新建立空间映射关系&…...
GPT-5.4 Pro接入Java!百万上下文+电脑操控,Spring AI集成教程
文章目录前言一、先搞清楚你在驯服什么野兽二、Spring AI Alibaba是什么鬼?核心优势三、环境准备:别在JDK版本上栽跟头四、基础对话:先让AI开口说话五、百万上下文的正确打开方式六、Computer Use:让AI真的动起来实际应用场景七、…...
保姆级教程:在Ubuntu 20.04上搞定海思SS524/SS522 SDK编译与固件烧录
海思SS524/SS522开发实战:从零构建嵌入式Linux系统的完整指南 作为一名长期深耕嵌入式开发的工程师,我深知从零开始搭建一个完整的开发环境有多么令人头疼。特别是当你拿到一块全新的开发板,面对陌生的SDK和工具链时,那种既兴奋又…...
用腾讯云轻量锐驰和对象存储,手把手教你30分钟搞定私人不限速网盘(附SSL证书配置)
零基础30分钟搭建高性能私人网盘:腾讯云轻量锐驰对象存储实战指南 你是否也受够了公有网盘动辄几百KB的下载速度?每次分享文件给朋友,对方总要忍受龟速下载的煎熬。更别提那些突然消失的文件和频繁弹出的会员广告——是时候拥有一个完全自主掌…...
通义千问3-Reranker-0.6B优化升级:调整批处理大小和自定义指令,性能再提升5%
通义千问3-Reranker-0.6B优化升级:调整批处理大小和自定义指令,性能再提升5% 1. 为什么需要优化重排序模型性能? 在信息检索和问答系统中,重排序模型扮演着至关重要的角色。它负责对初步检索得到的文档进行二次排序,…...
nli-distilroberta-base多场景:跨境电商商品描述与用户评论的语义一致性检测
nli-distilroberta-base多场景:跨境电商商品描述与用户评论的语义一致性检测 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务,专门用于分析两个句子之间的逻辑关系。这个轻量级但强大的工具在跨境电商领域…...
