【C语言】经典题目(一)
【C语言】字符串刷题篇在这里哦!
【C语言】字符串—刷题篇
【C】语言经典题目,五个摘录为一篇,将会持续更新啦!💞
C语言经典题目
- 三位数
- 水仙花数
- 完数
- 求利润
- 三个数数字排序
三位数
💫题目
已知有1、2、3、4这几个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
✨分析
已知: 1,2,3,4这几个数字;
组成三位数;
互不相同;
各位十位百位数字无重复;
输出: 有多少个;
是多少;
思路: 用循环嵌套进行遍历,表示三个数即百位数字 * 100+十位数字 * 10+各位数字。
但是要控制个位十位百位数字各不相同,所以用if 语句判断,如果各位不等于十位且不等于百位,十位不等于百位,就进行输出。
而输出要求先输出多少个,最后才依次输出三位数。所以每一次循环可以把这个三位数放到数组中,保存下来。最后输出。
对于有多少个,符合if语句的用计数器计1。
#include<stdio.h>
int main (void)
{int array[100]={0};//数组初始化为0int count=0,i=0;int a,b,c;for (a=1;a<5;a++)//百位for (b=1;b<5;b++)//十位for(c=1;c<5;c++)//个位if (a!=b && a!=c && b!=c){array[i]=a*100+b*10+c;i++;count++;}printf("这样的三位数有%d个\n",count);for (i=0;i<count;i++)printf("%d ",array[i]);printf("\n");return 0;
}
水仙花数
💫题目
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
✨分析
利用循环对100~999进行遍历,判断是不是完数,是则输出。
#include <stdio.h>
int main (void)
{int i,a,b,c;for (i=100;i<1000;i++){c=i%10;//个位b=i/10%10;//十位a=i/100;//百位if (a*a*a+b*b*b+c*c*c==i){printf("%d ",i);}}return 0;
}
完数
💫题目
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3编程找出1000以内的所有完数。
✨分析
利用循环遍历1~1000;
将它所有的因子求和;
判断因子之后是否等于它本身,是则输出。
#include <stdio.h>
int main (void)
{int i,k,sum;for (i=2;i<=1000;i++){sum=0;//注意sum的初始化必须在循环内for (k=1;k<i;k++)if (i%k==0)sum+=k;if (sum==i)printf("%d ",i);}return 0;printf("\n");
}
输出结果:
6 28 496
求利润
💫题目
企业发放的奖金根据利润提成:
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%;
高于100万元时,超过100万元的部分按1%提成。
已知: 利润(从键盘输入)
输出: 根据利润的范围,计算提成并输出。
思路: 可以用多分支选择语句,即多个if
#include<stdio.h>
double f1(int n);
double f2(int n);
double f3(int n);
double f4(int n);
double f5(int n);
double f6(int n);
int main (void)
{int n;double m;printf("请输入利润:\n");scanf("%d",&n);if (n>0 && n <=1e5)//用科学计数法表示比较简洁m=f1(n);else if(n>1e5 && n<=2e5)m=f2(n);else if (n>2e5 && n<=4e5)m=f3(n);else if (n>4e5 && n<=6e5)m=f4(n);else if (n>6e5 && n<=1e6)m=f5(n);else if (n>1e6)m=f6(n);printf("%lf",m);return 0;
}
double f1(int n)
{return n*0.1;
}
double f2(int n) //低于10万的部分用f1()函数
{return f1(1e5)+(n-1e5)*0.075;
}
double f3(int n) //低于20万的部分用f2()表示
{return f2(2e5)+(n-2e5)*0.05;
}double f4(int n)
{return f3(4e5)+(n-4e5)*0.03;}
double f5(int n)
{return f4(6e5)+(n-6e5)*0.015;
}double f6(int n)
{return f5(1e6)+(n-1e6)*0.01;
}
三个数数字排序
💫题目
输入三个数,x、y、z,请把它们从小到大输出。
✨分析
方法一: 可以使用假定法排序,思路就是:假设x是最小的,x和进行比较,若y大于x,则交换x和y的值,使得x是x、y中最小的……
方法二: 方法二可以使用指针 ,对三个数完成排序。
方法三: 使用三目运算符,求得三个数中最大的和最小的,然后用它们的和减去最大值最小值得到中间值。
代码实现
方法一:
#include <stdio.h>
int main (void)
{int x,y,z,tmp;scanf("%d%d%d",&x,&y,&z);if (y<x){tmp=x;x=y;y=tmp;}if(z<x){tmp=x;x=z;z=tmp;}if (z<y){tmp=y;y=z;z=tmp;}printf("%d %d %d\n",x,y,z);return 0;
}
方法二:
#include <stdio.h>
void fun(int*a,int*b,int*c);
int main (void)
{int x,y,z;int *a=&x,*b=&y,*c=&z;//给指针a、b、c赋值(地址值)scanf("%d%d%d",&x,&y,&z);fun (a,b,c);printf("%d %d %d\n",*a,*b,*c);return 0;
}
void fun(int*a,int*b,int*c)
{int tmp;if (*b<*a){tmp=*a;*a=*b;*b=tmp;}if (*c<*a){tmp=*a;*a=*c;*c=tmp;}if (*c<*b){tmp=*b;*b=*c;*c=tmp;}
}
▶️▶️在这里给大家补充一下,错误的程序!
#include <stdio.h>
void fun(int*a,int*b,int*c);
int main (void)
{int x,y,z;int *a=&x,*b=&y,*c=&z;//给指针a、b、c赋值(地址值)scanf("%d%d%d",&x,&y,&z);fun (a,b,c);printf("%d %d %d\n",*a,*b,*c);return 0;
}
void fun(int*a,int*b,int*c)
{int *tmp;if (*b<*a){tmp=a;a=b;b=tmp;}if (*c<*a){tmp=a;a=c;c=tmp;}if (*c<*b){tmp=b;b=c;c=tmp;}
}
在这个程序中,并不会实现将x、y、z三个数中按照从小到大的顺序进行输出。
这是因为,当主函数把程序的执行控制权交给被调函数fun()时,将实参*a,*b,*c传给实参变量。若 *a>*b,则交换a和b的值,使得a指向y,b指向x。但此时并不会改变x和y的值,当函数调用结束后,释放a与b的内存空间,将程序执行的控制权交给主调函数,所以,并不能改变主函数中变量x、y、z的值。
方法三:
#include <stdio.h>
int main (void)
{int x,y,z;int min,mid,max,sum;scanf("%d%d%d",&x,&y,&z);sum=x+y+z;max=(x>y?x:y)>z?(x>y?x:y):z;min=(x<y?x:y)<z?(x<y?x:y):z;mid=sum-min-max;printf("%d %d %d\n",min,mid,max);return 0;
}
感谢小伙伴的阅读🥰,有错误的地方欢迎指出交流呀🌹
相关文章:
【C语言】经典题目(一)
【C语言】字符串刷题篇在这里哦! 【C语言】字符串—刷题篇 【C】语言经典题目,五个摘录为一篇,将会持续更新啦!💞 C语言经典题目 三位数水仙花数完数求利润三个数数字排序 三位数 💫题目 已知有1、2、3、4…...
Linux 设备树文件手动编译的 shell 脚本
前言 前面通过 Makefile 实现手动编译 Linux 设备树 dts 源文件及其 设备树依赖 dtsi、.h 头文件,如何写成一个 shell 脚本,直接编译呢? 其实就是 把 Makefile 重新编写为 shell 脚本即可 编译设备树 shell 脚本 脚本内容如下:…...
C++核心编程——初识STL——STL的基本概念和六大组件
文章目录💬 一.前言二.STL基本概念和组成①容器②算法③迭代器④空间配置器⑤适配器⑥仿函数 三.STL工作机制 一.前言 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出“可重复运用的东西”的方法,让程序员的心血不止于…...
5.2图的BFS与DFS遍历
一.BFS遍历 1.图的广度优先遍历代码实现 说明: 1.广度优先遍历,类比树的层次遍历(树属于特殊的图) 2.对应算法想象图的物理结构存储: 邻接矩阵表示唯一时间复杂度:O(|V|^2); 邻接表不唯一:O(|V|2|E|)&…...
JSP+SQL网上选课系统(源代码+论文+答辩PPT)
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。学生选课系统作为一种现代化的教学技术,以越来越受到人民的重视,是一个学校不可缺少的部分, 学生选课系统就是为了管理好选课信息而设计的。学…...
C语言数据结构——树、堆(堆排序)、TOPK问题
🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,数据结构 🔥座右铭:“不要等到什么都没…...
springboot+vue 刘老师
课程内容 前端:vue elementui 后端:springboot mybatisplus 公共云部署 ------boot-------- 热部署 不用devtools,交给jrebel工具 RequestMapping 参数 value 路径 method 方法consumes 请求媒体类型 如 application/jsonproduces …...
学生网上考试报名系统的设计与实现
技术栈: MySQL、Maven、SpringBoot、Spring、SpringMVC、MyBatis、HikariCP、fastjson、slf4j系统功能:用户角色: (1)登录:用户在登录界面输入正确的账户名和密码,点击登录,系统将与…...
Jmeter实现分布式并发
Jmeter实现分布式并发,即使用远程机执行用例。 环境: VMware Fusion Windows系统是win7。 操作过程 1、Master在jmeter.properties添加remote_hosts 2、Slave在jmeter.properties添加server_port 同时把remote_hosts修改为和主机(Master…...
动态xml文件配置 hibernate validator 约束校验
父文章 入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客 一般都是通过 注解进行校验, 很少看到 通过配置来进行校验. 自己再通过谷歌找到了官网文档hibernate validator constraint from xml Hibernate Validator 8.0.0.Final - Jakarta Bean Validation Re…...
Vue绑定class样式与style样式
1,回顾HTML的class属性 答:任何一个HTML标签都能够具有class属性,这个属性可能只有一个值,如class"happs",也有可能存在多个属性值,如class"happs good blue",js的原生DOM针…...
集权攻击系列:如何利用PAC新特性对抗黄金票据?
黄金票据简介 黄金票据是一种常见的域内权限维持手段,这种攻击主要是利用了Kerberos认证过程中TGT票据由KRBTGT用户的hash加密的特性,在掌握KRBTGT用户密码之后可以通过签发一张高权限用户的TGT票据,再利用这个TGT向KDC获取域内服务的ST来实…...
同程面试(部分)(未完全解析)
一面 Java直接内存有了解吗?为什么Java NIO的效率更高?Netty用到很多NIO,来了一个请求后Netty是怎么分发的,它里面有哪些角色?粘包、拆包怎么解决?为什么建立TCP连接是三次握手,而不是四次&…...
讯飞星火_VS_文心一言
获得讯飞星火认知大模型体验授权,第一时间来测试一下效果,使用申请手机号登录后,需要同意讯飞SparkDesk体验规则,如下图所示: 同意之后就可以进行体验了,界面如下: 讯飞星火效果体验 以下Promp…...
Java的集合
1. HashMap排序题,上机题。 已知一个HashMap<Integer,User>集合, User有name(String)和age(int)属性。请写一个方法实现对HashMap 的排序功能,该方法接收 HashMap<Intege…...
addr2line 使用,定位kernel panic 代码位置
在kernel崩溃时,方便定位代码。 需要打开kernel配置CONFIG_DEBUG_INFO。 需要有System.map和vmlinux文件,一般在out目录。 一般panic的时候会有给出panic的指针,如下down_write。 el1_data说明发生异常了,进入和entry.S文件&a…...
OpenAI目前所有模型介绍
目录 概述 GPT-4 (limted beta) GPT-3.5 GPT-3 各类模型介绍 DALLE Beta Whisper Beta Embeddings Moderation Codex (deprecated) 概述 模型描述GPT-4 Limited beta 一组在 GPT-3.5 上改进的模型,可以理解并生成自然语言或代码GPT-3.5一组在 GPT-3 上改…...
【P43】JMeter 吞吐量控制器(Throughput Controller)
文章目录 一、吞吐量控制器(Throughput Controller)参数说明二、测试计划设计2.1、Total Executions2.2、Percent Executions2.3、Per User 一、吞吐量控制器(Throughput Controller)参数说明 允许用户控制后代元素的执行的次数。…...
方正书版命令详解
方正书版常用的排版符包括: 空格:表示文字之间的间距,不同字号的文字需要适当调整空格大小。 省略号:用于省略一段文字,通常用三个点表示(…)。 破折号:用于表示强调或者断句&…...
Gradio的web界面演示与交互机器学习模型,高级接口特征《6》
大多数模型都是黑盒,其内部逻辑对最终用户是隐藏的。为了鼓励透明度,我们通过简单地将Interface类中的interpretation关键字设置为default,使得向模型添加解释变得非常容易。这允许您的用户了解输入的哪些部分负责输出。 1、Interpret解释 …...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
