当前位置: 首页 > news >正文

【初学者入门C语言】之习题篇(二)

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 

 特别标注:该博主将长期更新c语言内容,初学c语言的友友们,订阅我的《初学者入门C语言》专栏,关注博主不迷路!

目录

一、求一元二次方程的解

1.题目

2.思路

3.代码

补充知识点

1.math.h

2.控制输出格式

二、猜数字游戏

1.题目

2.代码

3.执行结果

三、总结 


一、求一元二次方程的解

1.题目

求一元方程ax^2+bx+c=0(a!=0)的实数根,a,b,c通过键盘输入

2.思路

解一元二次方程a不为0的时候有三种情况,一、有两个不相等的实数根;二、有两个相等的实数根;三、有两个不相等的共轭复根。使用\bigtriangleup=b^2-4ac与0的关系来控制执行条件,再用求根公式求解(需要用求根函数sqrt(),在头文件需要声明一下#include"math.h")

3.代码

#include "stdio.h"
#include "math.h"

int main() {
	float a, b, c, d, x1, x2, p, q;
	printf("请输入a,b,c:");
	scanf("%f%f%f", &a, &b, &c);
	d = b * b - 4 * a * c;

	if (d > 0) {
		x1 = (-b + sqrt(d)) / (2 * a);
		x2 = (-b - sqrt(d)) / (2 * a);
		printf("方程有两个不相等的实数根,分别为:");
		printf("%.2f,%.2f", x1, x2);
	} else if (d == 0) {
		x1 = (-b + sqrt(d)) / (2 * a);
		x2 = x1;
		printf("方程有两个相等的实数根,分别为:");
		printf("%.2f,%.2f", x1, x2);
	} else {
		p = -b / (2 * a);
		q = sqrt(-d) / (2 * a);
		printf("方程有两个不相等的共轭复根,分别为:");
		printf("%.2f+%.2fi,%.2f+%.2fi", p, q, p, q);
	}

	return 0;
}

补充知识点

1.math.h

math.h头文件中声明了常用的一些数学运算(大多是数学公式)

1.绝对值

int n=-1;

abs(n); 求整型的绝对值

2.三角函数

double sin(n);正弦

double cos(n);余弦

double tan(n);正切

3.求根

int 4;

sqrt(n);

2.控制输出格式

%3d:输出所占的格子(向右对齐),比如输出数字,前面就空3-1=2个空格。

代码结果:

#include "stdio.h"

int main() {
	int n = 2;
	printf("%3d", n);
    return 0;
}

执行结果:

%9s: 输出所占的格子(向右对齐),输出字符串,前面空9-字符串的长度个空格

代码:

#include "stdio.h"

int main() {
    char str[6] = "china";
    printf("%9s", str);
    return 0;
}

执行结果:

注意定义字符数组要比字符串的长度大1 

%.2f:保留两位小数点

代码:

#include "stdio.h"

int main() {
	float n = 2;
	printf("%.2f", n);
	return 0;
}

执行结果:

 %5.3f:占5个位,数值保留三位小数点

代码:

#include "stdio.h"

int main() {
	float n;
	scanf("%f", &n);
	printf("%8.3f", n);
	return 0;
}

执行结果:

 5保留三位小数为5.000,占5个位,小数点也占一个位,所以前面就空三个位

二、猜数字游戏

1.题目

猜一个100以内的随机数,猜大了提醒大了,猜小了提醒小了

2.代码

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main() {

	int r, n;

	srand((unsigned)time(NULL));

	r = rand() % 100; //100以内的随机数

	do {
		scanf("%d", &n);

		if (n > r) {
			printf("大了!\n");
		} else if (n < r) {
			printf("小了!\n");
		} else {
			printf("恭喜你猜对了!");
		}
	} while (n != r);

	return 0;

}

3.执行结果

三、总结 

通过上面两个习题需要掌握一些常用的数学函数、两种控制输出格式的方法、会生成随机数,熟练使用if语句。

各位C语言的初学者有问题随时都可以问我,随时为您解惑!!!

👍+✏️+⭐️是对博主最大的鼓励与支持!!!

相关文章:

  • [架构之路-14]:目标系统 - 硬件平台 - CPU、MPU、NPU、GPU、MCU、DSP、FPGA、SOC的区别
  • Linux下brk、sbrk实现一个简易版本的malloc
  • 一、CSS选择器与权重[基础选择器、结构选择器、属性选择器、伪类选择器]
  • flutter系列之:深入理解布局的基础constraints
  • 【C语言进阶】动态内存管理及柔性数组
  • 网课查题接口系统
  • C语言基础知识入门
  • 闲暇之际敲敲代码,记录Leetcode刷题Day-01
  • 2021年下半年信息安全工程师上午真题及答案解析
  • Dinky,让 Flink SQL 纵享丝滑
  • Docker | docker容器导出以及常见问题的处理
  • 【node进阶】深度解析之Express框架入门
  • 【重温Linux】一、Ubuntu系统一些常识性的东西(这节持续更新)
  • mysql group_concat 与 union 联合查询漏洞,数据列最大长度为341
  • ISO27001认证需要准备什么资料?
  • [译]如何构建服务器端web组件,为何要构建?
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Angular Elements 及其运作原理
  • angular2 简述
  • CentOS7简单部署NFS
  • CSS魔法堂:Absolute Positioning就这个样
  • FineReport中如何实现自动滚屏效果
  • Java教程_软件开发基础
  • k8s 面向应用开发者的基础命令
  • k8s如何管理Pod
  • Python_网络编程
  • use Google search engine
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 构建二叉树进行数值数组的去重及优化
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 聊聊directory traversal attack
  • 如何学习JavaEE,项目又该如何做?
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用agvtool更改app version/build
  • 微信公众号开发小记——5.python微信红包
  • 一个JAVA程序员成长之路分享
  • 译米田引理
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #、%和$符号在OGNL表达式中经常出现
  • #DBA杂记1
  • #控制台大学课堂点名问题_课堂随机点名
  • (1)(1.13) SiK无线电高级配置(五)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (LeetCode C++)盛最多水的容器
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (二)Eureka服务搭建,服务注册,服务发现
  • (七)Knockout 创建自定义绑定
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)JAVA中的堆栈
  • (转)shell调试方法