C语言100道练习题打卡(1)

1

有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数,都是多少

#include<stdio.h>
//有1,2,3,4四个数字,能组成多少个互不相同且不重复的三位数,都是多少

int main()
{
	int i, j, k;
	printf("\n");
	int count = 0;
	for (i = 1; i < 5; i++)
	{
		for (j = 1; j < 5; j++)
		{
			for (k = 1; k < 5; k++)
			{
				if (i != k && k != j && j != k)
				{
					printf("%d %d %d\n", i, j, k);
					count++;
				}
			}
		}
	}
	printf("count = %d", count);
	return 0;
}

2

题目:

根据企业利润计算奖金,从键盘输入利润,计算应发放奖金金客,公式如下:
1)利润低于或等于10万元时,奖金可提10%;
2)利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
3)20万到40万之间时,高于20万元的部分,可提成5%;
4)40万到60万之间时高于40万元的部分,可提成3%;
5)60万到100万之间时,高于60万元的部分,可提成1.5%;
6)高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润,求应发放奖金总数?

#include<stdio.h>
int main()
{
	double profit, bonus1, bonus2, bonus3, bonus4, bonus5,bonus;

	printf("请输入企业的利润为:");
	scanf_s("%lf", &profit);

	//计算每个利润段的奖金基数
	bonus1 = 100000 * 0.1;//利润低于或等于10万元时,奖金可提10%;
	bonus2 = bonus1 + 100000 * 0.075;//利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
	bonus3 = bonus2 + 100000 * 0.05;//20万到40万之间时,高于20万元的部分,可提成5%;
	bonus4 = bonus3 + 100000 * 0.03;//40万到60万之间时高于40万元的部分,可提成3%;
	bonus5 = bonus4 + 100000 * 0.015;//高于100万元时,超过100万元的部分按1%提成

	if (profit <= 100000)
	{
		bonus = profit * 0.1;
	}
	else if (profit <= 200000)
	{
		bonus = bonus1 + (profit-100000) * 0.75;
	}
	else if (profit <= 400000)
	{
		bonus = bonus2 + (profit - 200000) * 0.05;
	}
	else if (profit <= 600000)
	{
		bonus = bonus3 + (profit - 400000) * 0.03;
	}
	else if (profit <= 1000000)
	{
		bonus = bonus4 + (profit - 600000) * 0.015;
	}
	else if(profit>1000000)
	{
		bonus = bonus5 + (profit - 1000000) * 0.01;
	}

	printf("提成为:bonus=%lf\n", bonus);
	return 0;
}

3 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少

#include<stdio.h>

/*分析:一个整数,它加上100后是一个完全平方数
再加上168又是一个完全平方数,请问该数是多少
设该数为x
1,x+100=n*n;x+100+168=m*m
2,m*m-n*n=(m+n)(m-n)=168
3,设m+n=i;m-n=j,则i*j=168,那么i和j都是偶数
4,m=(i+j)/2,n=(i-j)/2,i和j均是大于2的偶数
6,由于i*j=168,j>=2,得到1<i<168/2+1
接下来将i的所有数字循环计算即可*/

int main()
{
	int i, j, n, m,x;
	for (i = 1; i < 168 / 2 + 1; i++)
	{
		if (168 % i == 0)
		{
			j = 168 / i;
			if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0)//m,n均是偶数
			{
				m = (i + j) / 2;
				n = (i - j) / 2;
				x = n * n - 100;
				printf("%d\n", x);
				printf("%d+100 = %d*%d\n", x, n, n);
				printf("%d+168 = %d*%d\n", x, m, m);
			}
		}
	}
	
	return 0;
}

 

 4  题目:输入某年某月某日,判断这一天是这一年的第几天

#include<stdio.h>

/*分析:
输入某年某月某日,判断这一天是这一年的第几天
年:判断是否是闰年,
月:闰年的2月有28天
天:一个月有30或31天
设这一天为这一年的第x天

以3月5日为例,应该把前两个月的天数相加后,加上五天,即为本年的第几天
特殊情况:闰年且输入月份大于3时需要考虑多加一天*/

int main()
{
	int day, year, month, sum, leap;
	printf("请输入日期:格式为:年,月,日\n");
	scanf_s("%d,%d,%d", &year, &month, &day);

	switch (month)
	{
	case 1:
		sum = 0;
		break;
	case 2:
		sum = 31;
		break;
	case 3:
		sum = 59;
		break;
	case 4:
		sum = 90;
		break;
	case 5:
		sum = 120;
		break;
	case 6:
		sum = 151;
		break;
	case 7:
		sum = 181;
		break;
	case 8:
		sum = 212;
		break;
	case 9:
		sum = 243;
		break;
	case 10:
		sum = 273;
		break;
	case 11:
		sum = 304;
		break;
	case 12:
		sum = 334;
		break;
	default:
		printf("请重新输入");
		break;
	}

	sum = sum + day;//某月加上某天

	//判断是不是闰年
	if ((year % 400 == 0) || (year % 4 == 0 && year % 100 == 0))
	{
		leap = 1;
	}
	else
	{
		leap = 0;
	}

	//如果是闰年且月份大于2,总天数应该加一天
	if (leap == 1 && month > 2)
	{
		sum++;
	}
	printf("这是这一年中的第%d天", sum);
	return 0;
}

5  题目:输入三个整数x,y,z,请把这三个数由小到大输出

方法一:

#include<stdio.h>
int main()
{
	int x, y, z;
	printf("请输入三个整数: \n");
	scanf_s("%d,%d,%d", &x, &y, &z);

	printf("从小到大排序:\n");
	if (x < y)
	{
		if (y < z)
		{
			printf("%d,%d,%d", x, y, z);
		}
		else
		{
			printf("%d,%d,%d", x, z, y);
		}
	}
	else if (y < x)
	{
		if (x < z)
		{
			printf("%d,%d,%d", y, x, z);
		}
		else
		{
			printf("%d,%d,%d", y, z, x);
		}
	}
	
	return 0;
}

 方法二:

#include<stdio.h>
int main()
{
	int x, y, z,t;
	printf("请输入三个整数: \n");
	scanf_s("%d,%d,%d", &x, &y, &z);

	if (x > y)
	{
		t = x;
		x = y; 
		y = t;
	}
	if (x > z)
	{
		t = z;
		z = x;
		x = t;
	}
	if (y > z)
	{
		t = y;
		y = z;
		z = t;
	}
	printf("从小到大排序:%d %d %d\n", x, y, z);
	return 0;
}

 6  用*号输入字母C的图案

#include<stdio.h>
int main()
{
	int i, j, k;
	int n = 5;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < 5; j++)
		{
			if ((i == 0 || i == n - 1) || (j == 0 && i != n / 2) || (j == n - 1 &&i!= n / 2))
			{
				printf("*");
			}
			else
			{
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}

 

7  输出九九乘法表

#include<stdio.h>
int main()
{
	//九九乘法表,i控制行,j控制列
	int i, j, result;

	for (i = 0; i < 10; i++)
	{
		for (j = 1; j <= i; j++)
		{
			result = i * j;
			printf("%d * %d = % -3d ", j, i, result);
		}
		printf("\n");
	}
	return 0;
}

8 输出象棋棋盘

#include<stdio.h>
/*分析:
国际想起棋盘由64个黑白相间的格子组成,分为8行8列。
用i控制行,j控制列,根据i+j的和的变化来控制输出黑方格或白方格
*/

int main()
{
	int i, j;
	for (i = 0; i < 8; i++)
	{
		for (j = 0; j < 8; j++)
		{
			if ((i + j) % 2 == 0)
			{
				printf("%c%c", '*', '*');//**表示黑方格
			}
			else
			{
				printf("  ");
			}
		}
		printf("\n");
	}
	return 0;
}

9 打印楼梯图形 和笑脸

 题目:打印楼梯,同时在楼梯上方打印两个笑脸

//题目:打印楼梯,同时在楼梯上方打印两个笑脸
//用11来表示两个笑脸;用i控制行,用j控制列
//j根据i的变化来控制输出黑方格的个数
#include<stdio.h>
int main()
{
	int i, j;
	printf("11\n");//用11来表示两个笑脸
	for (i = 1; i < 11; i++)
	{
		for (j = 1; j <= i; j++)
		{
			printf("%c%c", 70, 70);
		}
		printf("\n");
	}
	return 0;
}

10 兔子生崽

方法1:

#include<stdio.h>
/*有一对兔子,从出生后第3个月都圣一对兔子,小兔子长到第三个月后又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)*/

/*分析:兔子的个数规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和*/
int main()
{
	int f1 = 1, f2 = 1, i;

	for (i = 1; i <= 20; i++)
	{
		printf("%12d%12d", f1, f2);
		if (i % 2 == 0)
			printf("\n");
			f1 = f1 + f2;
			f2 = f1 + f2;
	}
	return 0;
}

这让我想起来青蛙跳台阶的案例,我们再来回顾一下吧

题目:一只青蛙要从第一级台阶开始,每次可以跳上一级或者两级,直到跳完所有的台阶。我们需要找出青蛙有多少种跳法

方法1;

int Fib(int x)
{
	int i = 1;
	int j = 1;
	int z = 1;
	while (x > 0)
	{
		z = i + j;
		i = j;
		j = z;
		x--;
	}
	return z;
}
int main()
{
	int n = 0;
	printf("青蛙跳的台阶数为:\n");
	scanf_s("%d", &n);
	int ret = Fib(n);
	printf("青蛙跳台阶的方法有%d种", ret);
	return 0;
}

方法2:

 利用递归方式

int Fib(int x)
{
	if (x == 1)
		return 1;
	else if (x == 2)
		return 2;
	else
		return Fib(x - 1) + Fib(x - 2);
}
int main()
{
	int n = 0;
	printf("青蛙跳的台阶数为:\n");
	scanf_s("%d", &n);
	int ret = Fib(n);
	printf("青蛙跳台阶的方法有%d种", ret);
	return 0;
}

11 判断101到200之间的素数

#include<stdio.h>

/*分析:
判断素数的方法:
用一个数分比如取出2到sqrt(这个数),如果能被整除,则表明此数不是素数
*/


int main()
{
	int i,j;
	int count = 0;

	for (i = 101; i <= 200; i++)
	{
		for (j = 2; j < i; j++)
		{
         //如果j能被i整除再跳出循环
			if (i % j == 0)
			{
				break;
			}
		}
     //判断循环是否提前跳出,如果j<i说明在2~j之间,i有可整除的数
			if (j >= i)
			{
				count++;
				printf("%d ", i);
				//每五个数换行
				if (count % 5 == 0)
					printf("\n");
			}
		
	}
	return 0;
}

 

 12 水仙花数

打印水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个水仙花数,因为153 = 1的三次方+5的三次方+3的三次方

#include<stdio.h>
/*
利用for循环控制100~999个数,每个数分解出个位,十位,百位
*/

int main()
{
	int x, y, z, i;
	for (i = 100; i < 1000; i++)
	{
		x = i % 10;
		y = i / 10 % 10;
		z = i / 100 % 10;

		if (i == (x * x * x + y * y * y + z * z * z))
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web端Excel的导入导出Demo

&#x1f4da;目录 &#x1f4da;简介:✨代码的构建&#xff1a;&#x1f4ad;Web端接口Excel操作&#x1f680;下载接口&#x1f680;导入读取数据接口 &#x1f3e1;本地Excel文件操作⚡导出数据&#x1f308;导入读取数据 &#x1f4da;简介: 使用阿里巴巴开源组件Easy Exce…

在Mac中打开终端的3种方法

在使用Mac时&#xff0c;有时需要深入研究设置&#xff0c;或者完成一些开发人员级的命令行任务。为此&#xff0c;你需要终端应用程序来访问macOS上的命令行。下面是如何启动它。 如何使用聚焦搜索打开终端 也许打开终端最简单、最快的方法是通过聚焦搜索。要启动聚焦搜索&a…

Collection与数据结构 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…

支持向量机模型pytorch

通过5个条件判定一件事情是否会发生&#xff0c;5个条件对这件事情是否发生的影响力不同&#xff0c;计算每个条件对这件事情发生的影响力多大&#xff0c;写一个支持向量机模型pytorch程序,最后打印5个条件分别的影响力。 示例一 支持向量机&#xff08;SVM&#xff09;是一种…

详解拷贝构造

拷贝构造的功能 写法&#xff1a; 拷贝构造函数的参数为什么是引用类型 系统自动生成的拷贝构造函数 拷贝构造的深拷贝与浅拷贝 概念 浅拷贝&#xff1a; 深拷贝 小结 拷贝构造的功能 拷贝构造函数可以把曾经实例化好的对象的数据拷贝给新创建的数据 &#xff0c;可见…

基于SpringBoot+Mybatis框架的私人影院预约系统(附源码,包含数据库文件)

基于SpringBootMybatis框架的私人影院预约系统&#xff0c;附源码&#xff0c;包含数据库文件。 非常完整的一个项目&#xff0c;希望能对大家有帮助哈。 本系统的完整源码以及数据库文件都在文章结尾处&#xff0c;大家自行获取即可。 项目简介 该项目设计了基于SpringBoo…

软考126-上午题-【软件工程】-测试方法

一、测试方法 在软件测试过程中&#xff0c;应该为定义软件测试模板&#xff0c;即将特定的测试方法和测试用例设计放在一系列的测试步骤中。 软件测试方法分为&#xff1a;静态测试和动态测试。 1-1、静态测试。 静态测试是指被测试程序不在机器上运行&#xff0c;而是采用…

事务隔离级别的无锁实现方式 -- MVCC

MVCC的全称是Multiversion Concurrency Control(多版本并发控制器)&#xff0c;是一种事务隔离级别的无锁的实现方式&#xff0c;用于提高事务的并发性能&#xff0c;即事务隔离级别的一种底层实现方式。 在了解MVCC之前&#xff0c;我们先来回顾一些简单的知识点&#xff1a;…

最优算法100例之47-从尾到头打印单链表

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 从尾到头打印单链表 题解报告 方法1:头插法逆置单链表然后依次打印;注意此处是不带头结点的单链表,带头节点的操作稍微有…

网络篇09 | 运输层 udp

网络篇09 | 运输层 udp 01 简介UDP 是面向报文的 02 报文协议 01 简介 UDP 只在 IP 的数据报服务之上增加了一些功能&#xff1a;复用和分用、差错检测 UDP 的主要特点&#xff1a;无连接。发送数据之前不需要建立连接。 使用尽最大努力交付。即不保证可靠交付。 面向报文。…

【信号处理】心电信号传统R波检测定位典型方法实现(matlab)

关于 心电信号中QRS波检测是一个非常重要的步骤&#xff0c;可以用于实现重要波群的基本定位&#xff0c;在定位基础上&#xff0c;可以进一步分析心电信号的特征变化&#xff0c;从而为医疗诊断提供必要的参考。 工具 MATLAB ECG心电信号 方法实现 ECG心电信号加载 ecg …

基于深度学习的花卉检测系统(含PyQt界面)

基于深度学习的花卉检测系统&#xff08;含PyQt界面&#xff09; 前言一、数据集1.1 数据集介绍1.2 数据预处理 二、模型搭建三、训练与测试3.1 模型训练3.2 模型测试 四、PyQt界面实现参考资料 前言 本项目是基于swin_transformer深度学习网络模型的花卉检测系统&#xff0c;…

架构师系列-搜索引擎ElasticSearch(八)- 集群管理故障恢复

故障转移 集群的master节点会监控集群中的节点状态&#xff0c;如果发现有节点宕机&#xff0c;会立即将宕机节点的分片数据迁移到其它节点&#xff0c;确保数据安全&#xff0c;这个叫做故障转移。 下图中node1是主节点&#xff0c;其他两个节点是从节点 节点故障 此时node1…

【uniapp】vscode安装插件、ts校验、允许json文件注释

1、vscode安装的插件&#xff1a; uni-create-viewuni-hlperuniapp小程序扩展 2、ts校验 安装插件&#xff1a; pnpm i -D types/wechat-miniprogram uni-helper/uni-app-types配置tsconfig.json {"extends": "vue/tsconfig/tsconfig.json","compi…

论文笔记:The Expressive Power of Transformers with Chain of Thought

ICLR 2024 reviewer 评分 6888【但是chair 很不喜欢】 1 intro 之前的研究表明&#xff0c;即使是具有理想参数的标准Transformer&#xff0c;也无法完美解决许多大规模的顺序推理问题&#xff0c;如模拟有限状态机、判断图中的节点是否相连&#xff0c;或解决矩阵等式问题 这…

IOS 短信拦截插件

在使⽤iOS设备的时候, 我们经常会收到1069、1065开头的垃圾短信, 如果开了iMessage会更严重, 各种乱七⼋糟的垃圾信息会时不时地收到。 从iOS11开始, ⼿机可以⽀持恶短信拦截插件了. 我们可以通过该插件添加⼀些规则通过滤这些不需要的信息. ⼀. 使⽤xcode新建⼀个项⽬ 【1】…

MongoDB 初识

介绍 MongoDB是一种开源的文档型数据库管理系统&#xff0c;它使用类似于JSON的BSON格式&#xff08;Binary JSON&#xff09;来存储数据。与传统关系型数据库不同&#xff0c;MongoDB不使用表和行的结构&#xff0c;而是采用集合&#xff08;Collection&#xff09;(Mysql表)和…

LabVIEW直流稳定电源自动化校准系统

LabVIEW直流稳定电源自动化校准系统 直流稳定电源正向着智能化、高精度、多通道、宽量程的方向发展。基于LabVIEW开发环境&#xff0c;设计并实现了一种直流稳定电源自动化校准系统&#xff0c;以提升校准过程的整体效能&#xff0c;实现自动化设备替代人工进行电源校准工作。…

【DNS】

文章目录 DNS域名解析系统&#xff08;Domain Name System&#xff09;DNS系统需要解决的问题DNS域名解析系统&#xff08;Domain Name System&#xff09;问题1&#xff1a;DNS名字空间(The DNS Name Space&#xff09;DNS名字空间(The DNS Name Space)DNS名字空间(The DNS Na…

oracle 19c 主备 补丁升级19.22

补丁升级流程 备库升级 备库备份$ORALCE_HOME du -sh $ORACLE_HOME ​​​​​​​ 备份目录将dbhome_1压缩 cd $ORACLE_HOME cd .. Ls tar -cvzf db_home.tar.gz db_home_1 /opt/oracle/product/19c ​​​​​​​​​​​​​​ 关闭监听关闭数据库查看sq…