12道c语言的课后习题!

news2024/11/23 21:38:55

1、计算n的阶乘(1*2*3*4*5    n是个数,比如说乘到100?)

// 计算n的阶乘

#include"stdio.h"

int main() {
	int n = 0;
	scanf("%d", &n);
	int i = 0;
	int ret = 1;
	for (i = 1; i <= n; i++) {
		ret *= i;
	}
	printf("%d", ret);
	return 0;
}

2、用递归的方式实现n的阶乘?

//  用递归的方法实现n的阶乘。
int fac(int n) {
	if (n <= 1) {
		return 1;
	}
	else {
		return n * fac(n - 1);
	}

}

int main() {

	int n = 0;
	scanf("%d", &n);
	int ret = 0;
	ret = fac(n);
	printf("%d", ret);
	return 0;
}

3、求第n个斐波那契数。  意思就是前两个数的和等于第三个数:1 1 2 3 5 8 13 21 34 55 .....

用递归的方式可以实现,就是效率有点低,看代码吧:4

// 求第n个斐波那契数。(不考虑溢出)
//  前两个数的和等于第三个数    1 1 2 3 5 8 13 21 34  55 ......

// 递归可以求解,但是效率太低。


int count = 0;
int fib(int n) {
	//统计第三个斐波那契数使用的次数?
	if (n == 3) {
		count++;
	}
	if (n <= 2) {
		return 1;
	}
	else {

		return fib(n - 1) + fib(n - 2);
	}

}

int main() {
	int n = 0;
	scanf("%d", &n);
	int ret = fib(n);
	printf("%d\n", ret);
	printf("count=%d\n", count);
	return 0;
}

4、用一个更高效率的方法求第n个斐波那契数?

int fib(int n) {
	int a = 1;
	int b = 1;
	int c = 1;
	while (n > 2) {
		c = a + b;
		a = b;
		b = c;
		n--;          // 传入的数每次减1,好达到while循环的终止条件
	}
	return c;

}

int main() {
	int n = 0;
	scanf("%d", &n);
	int ret = fib(n);
	printf("%d\n", ret);
	return 0;
}

5、编写1到100的所有整数中出现了多少个数字9?

#include"stdio.h"
 //编写1到100的所有整数中出现了多少个数字9?    十位= 整数 / 10 比如:87/10=8  个位= 整数 % 10  比如:12 模10 = 2
int main() {
	int i = 0;
	int count = 0;
	for (i = 1; i <= 100; i++) {
		if (i / 10 == 9 || (i % 10) == 9) {
			count++;
		}
	}
	printf("%d", count);
	return 0;
}

6、计算 1/1-1/2+1/3-1/4.....+1/100的值?

#include"stdio.h"


//计算 1/1-1/2+1/3-1/4.....+1/100的值
double jiashu(int i) {
	return 1.0 / i;     //想要除法得到小数就要有一个值是小数所以写成1.0
}

int main() {
	int i = 0;
	double he1 = 0.0;
	//printf("%lf", 1.0 / 2);    1.0 / 2 = 0.50000
	for (i = 1; i <= 100; i++) {
		if (i % 2 == 1) {
			he1 +=jiashu(i);
		}
		else
			he1 -=jiashu(i);
	}
	printf("%lf", he1);   //0.688172
	return 0;
}

7、用另外一种方法求计算 1/1-1/2+1/3-1/4.....+1/100的值?

//计算 1/1-1/2+1/3-1/4.....+1/100的值

int main() {
	int i = 0;
	double he1 = 0.0;
	int flag = 1;
	//printf("%lf", 1.0 / 2);    1.0 / 2 = 0.50000
	for (i = 1; i <= 100; i++) {
		he1 += flag * 1.0 / i;
		flag = -flag;              // 第一次falg为正1,第二次就为-1, 3:+ , 4:-  依次循环
	}
	printf("%lf", he1);   //0.688172
	return 0;
}

8、求10个整数中的最大值?

# include"stdio.h"

// 求10个整数中的最大值?

int main() {
	int arr[] = { -31,-2,-3,-4,-5,-6,-7,-8,-9,-10 };
	int max = arr[0];
	int i = 0;
	for (i = 0; i <= 10; i++) {
		if (max < arr[i])
			max = arr[i];
	}
	printf("%d", max);
	return 0;
}

9、输出乘法口诀表?

 

#include"stdio.h"

// 输出乘法口诀表

int main() {
	int i = 0, j = 0;
	for (i = 1; i < 10; i++) {
		for (j = 1; j <= i; j++) {
			printf("%dX%d=%-2d   ", j, i, i * j);  // 2d  是打印2位右对齐,左侧补充空格, -2d是左对齐,右侧补空格。
		}
		printf("\n");
	}
	return 0;
}

10、猜数字游戏?

#include"stdio.h"
#include"time.h"
#include"stdlib.h"
// 猜数字游戏

void game() {
	int num = rand()%100;
	//printf("%d", num);
	int cai = 0;
	printf("请猜猜我心目中的数吧\n");
	while (num != cai) {
		scanf("%d", &cai);
		if (cai > num)
			printf("你猜大了\n");
		else if (cai < num)
			printf("你猜小了\n");
	}
	printf("恭喜你猜对了!\n");
}

int main() {
	a:
	srand((unsigned int)time(NULL));  // 设置随机数的起始值为 :强制转换成整型的时间戳
	int input = 1;
	printf("*************欢迎试玩猜字游戏***************\n****************1:开始游戏*****************\n****************0:退出游戏*****************\n");
	while (input) {
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			goto a;
		case 0:
			break;
		default:
			printf("你输入的答案不正确!重新选择?");
		}
	}
	return 0;
}

11、用二分查找法,在一个整型有序数组中具体查找某个数。

  用二分查找法,在一个整型有序数组中具体查找某个数。
#include"stdio.h"
#include"string.h"

int main() {
	int arr[] = {1,2,3,4,5,6,7,8,9,10};
	int k = 7;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int left = 0;
	int right = sz - 1;
	int mid = 0;
	
	while (left <= right) {
		mid = (left + right) / 2;
		if (k > arr[mid]) {
			left = mid + 1;
		}
		else if (k < arr[mid]) {
			right = mid - 1;
		}
		else
		{
			printf("%d的下标是:%d", k, mid);
			break;
		}
	}
	if(left > right)
		printf("没有找到");
	
	return 0;
}

12、函数判断素数
         实现一个函数,判断一个数是不是素数。
         利用上面实现函数打印100到200之间的素数。

#include"stdio.h"

int panduan(int i) {
	int j = 2;
	for (j = 2; j < i; j++) {
		if (i % j == 0) {
			return 0;
		}
		else {
			return 1;
		}
	}
}

int main() {
	int i = 0;
	int count = 0;
	for (i = 100; i <= 300; i++) {
		if (panduan(i)) {
			printf("%d是素数\n", i);
			count++;
		}
	}
	printf("一共有个%d素数", count);
	return 0;
}

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

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

相关文章

技术分享| 融合会议协议大解密

anyRTC的融合会议解决方案中&#xff0c;支持H.323协议、SIP协议、GB28181国标协议、私有协议等等&#xff0c;实际在跟客户沟通时&#xff0c;我们常会被问到到底是SIP还是H.323好&#xff1f;客户前期已经建设了视频会议系统&#xff0c;有H.323的、有腾讯会议/Zoom这种互联网…

ESLint驼峰命名法规则校验关闭

目录 1、简单介绍ESLint1.1 ESLint是什么1.2 ESLint的好处1.3 ESLint的规范 2、 驼峰校验提示3、解决方案 1、简单介绍ESLint 1.1 ESLint是什么 ESLint 是一个代码检查工具&#xff0c;用来检查你的代码是否符合指定的规范 例如: 的前后必须有一个空格例如: 函数名后面必须…

郑州市元宇宙产业发展实施方案发布,中创助力元宇宙创新建设!

如果说2022年的“元宇宙”赛道&#xff0c;尚是以Meta为首&#xff0c;而今&#xff0c;政府也纷纷参与其中。 数据显示截至目前&#xff0c;国内已有至少30个地区&#xff08;涉及10个省级行政区&#xff09;颁布了元宇宙相关的支持性政策或征求意见稿&#xff0c;政策文件名中…

神策「数据闭环解决方案」重磅上线,3 大方向助推业务起飞

在通过数据驱动业务增长的落地实践中&#xff0c;企业大多面临以下困扰&#xff1a; 数据源多且杂乱&#xff0c;该如何从 0 开始积累数据助力业务决策&#xff1f; 如何借助数据的力量&#xff0c;洞察业务关键增长点&#xff1f; 如何提升运营效率&#xff1f;怎样提高用户的…

STM32——关于GPIO讲解及标准库应用(基础篇)

简介&#xff1a; STM32是一系列基于ARM Cortex-M内核的32位微控制器。该系列微控制器广泛应用于计算机、通讯、工业自动化、消费电子、汽车电子、医疗仪器及家庭电器等领域。该系列控制器具有高性能、低功耗、智能化等特点。其中&#xff0c;GPIO就是STM32控制器中的一…

Stack 栈的实现与应用

目录 1. 概念 2. 常用的栈的方法 2.1 方法 2.2 代码 3. 自己实现栈 3.1 构造MyStack 3.2 push() 3.3 ensureCapacity&#xff08;&#xff09; 3.4 pop() 3.5 peek() 3.6 empty() 3.7 szie() 4. 栈的应用 1. 概念 栈&#xff08;Stack&#xff09;是一种数据结构&…

02_stack栈

1. Stack 栈是什么&#xff1f; 栈也叫栈内存&#xff0c;主管Java程序的运行&#xff0c;是在线程创建时创建&#xff0c;它的生命期是跟随线程的生命期&#xff0c;线程结束栈内存也就释放&#xff0c;对于栈来说不存在垃圾回收问题&#xff0c;只要线程一结束该栈就Over&…

LabVIEWCompactRIO 开发指南37 在第三方模拟器中执行

LabVIEWCompactRIO 开发指南37 在第三方模拟器中执行 如果需要验证时序和功能&#xff0c;在将LabVIEW FPGA VI编译到硬件之前&#xff0c;可以与三款第三方仿真器进行交互&#xff1a;MentorGraphicsModelSim&#xff08;LabVIEW2013及更早版本&#xff09;、MentorGraphics…

【MySQL】MySQL主从同步延迟原因与解决方案

文章目录 一、MySQL数据库主从同步延迟产生的原因二、关于DDL和DML三、主从延时排查方法四、解决方案3.1 解决从库复制延迟的问题&#xff1a;3.2 MySql数据库从库同步其他问题及解决方案 一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作&#xff0c;…

JS CSS 关于 Shadow dom 的用法

一、什么是 Shadow DOM 你是否好奇过&#xff0c;浏览器自带的元素的样式是如何实现的&#xff0c;例如 video、input &#xff0c;又或者在某些网站中看到一些非浏览器自带且没见过的元素&#xff1f; 如果你打开 F12 查看定位该元素的信息&#xff0c;你会发现啥都没看到&am…

Spring Cloud Alibaba 完整使用及与各中间件集成

目录 前言 官方中文文档 使用版本 spring 中间件 使用到的组件与功能 环境安装 虚拟机 nexus nacos 集成过程 工程搭建 父工程搭建 子工程 服务集成 nacos 配置文件&#xff1a; 服务注册与发现-discovery 服务注册 启动 服务发现 测试 配置管理-config…

网络安全是一个好专业吗?

前言 网络安全作为一个专业领域&#xff0c;在当今数字时代正变得越发重要和关键。无论是企业还是个人&#xff0c;面对着越来越频繁的网络威胁和攻击&#xff0c;网络安全领域的专业人员扮演着至关重要的角色。那么&#xff0c;从一个资深网安工程师的角度来看&#xff0c;网…

nest context.switchToHttp().getRequest() 获取不到user

把你该死的Public注释掉&#xff0c;这玩意开了后不走JWT验证token&#xff0c;所以拿不到那该死的user。

pdf怎么合并在一起?软件操作更高效

PDF格式已经成为了许多文档和表格的首选格式。然而&#xff0c;当你需要合并多个PDF文件时&#xff0c;可能会遇到一些麻烦&#xff0c;在本篇文章中&#xff0c;我们将向您介绍一种简单易用的方法来合并PDF文件。 以下是可以用来合并PDF文件的软件&#xff1a; - PDF转换器&a…

当你在浏览器中输入 URL 时会发生什么?

下面的图解说明了步骤。 1.Bob 在浏览器中输入 URL 并按下 Enter。在这个例子中&#xff0c;URL 由 4 部分组成&#xff1a; &#x1f539; 协议 - http://. 这告诉浏览器使用 HTTP 发送连接到服务器。 &#x1f539; 域名 - example.com. 这是站点的域名。 &#x1f539; 路径…

C++STL— priority_queue的使用与模拟实现

priority_queue的使用 priority_queue的介绍 优先级队列默认使用vector作为其底层存储数据的容器&#xff0c;在vector上又使用了堆算法将vector中的元素构造成堆的结构&#xff0c;因此priority_queue就是堆&#xff0c;所有需要用到堆的位置&#xff0c;都可以考虑使用prio…

极米十年巅峰之作极米Z7X,能带走的百吋大屏

近年来&#xff0c;随着人们娱乐消费的升级&#xff0c;家用投影仪消费市场不断扩大&#xff0c;增长速度也非常可观。据IDC最新发布的数据显示&#xff0c;2022年中国投影机市场总出货量505万台&#xff0c;同比增长7.4%。其中&#xff0c;智能投影机市场&#xff08;搭载有OS…

ChatGPT:免费可用 ChatGPT 网页版(免登录、免注册、不限制使用次数)

一、什么是chatgpt ChatGPT是一种基于GPT-3(Generative Pre-trained Transformer 3)的聊天机器人。GPT-3是由OpenAI公司开发的自然语言处理模型&#xff0c;具有非常强的语言理解和生成能力。 ChatGPT使用了GPT-3的预训练模型&#xff0c;在此基础上进行了微调和优化&#xf…

机器学习:基于Apriori算法对中医病症辩证关联规则分析

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注…

【Linux】进程间通信的有关基础概念

在以前我们使用多进程时&#xff0c;我们一般都是让父子进程分别执行各自的代码&#xff0c;进程之间几乎没有通信&#xff0c;但是实际过程中&#xff0c;进程间的通信是十分重要的的一件事情&#xff0c;一个复杂的程序一般都是有多个进程相互通信&#xff0c;协调进行来完成…