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

C语言小练

目录

打印斐波那契数列指定位置的值

给定两个数,求这两个数的最大公约数

三个数从大到小输出

模拟用户登陆情况,且只能输如三次

采用二分法查找数组中的指定元素

打印输出九九乘法表

数一下1-100中所有整数出现多少个数字9

打印1-200之间的素数,并输出总共有多少个

不引用第三个变量,交换两个数的值

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

企业发放的奖金根据利润提成。

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

输入某年某月某日,判断这一天是这一年的第几天?

打印出所有的"水仙花数"

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

用递归的方法求一个数的阶乘

利用递归函数调用方式,将所输入的字符串,以相反顺序打印出来。


打印斐波那契数列指定位置的值

菲波那切数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。

int fib(int n){if(n<=2)return 1;elsereturn fib(n-1)+fib(n-2);
}int main(){int i=0;int ret=0;scanf("%d",&i);ret=fib(i);printf("ret=%d",ret);return 0;
}

给定两个数,求这两个数的最大公约数

本算法主要利用辗转相除法求出两个数的最大公约数。

int main(){int m=0;int n=0;int r=0;scanf("%d %d",&m,&n);while(r=m%n){m=n;n=r;} printf("%d\n",n);return 0;
}

三个数从大到小输出


int main(){int a=0;int b=0;int c=0;scanf("%d%d%d",&a,&b,&c);//算法实现:a中放最大值   b次之   c中放最小值if(a<b){int tmp=a;a=b;b=tmp;} if(a<c){int tmp=a;a=c;c=tmp;}if (b<c){int tmp=b;b=c;c=tmp;}printf("%d %d %d\n",a,b,c);return 0;    
} 

模拟用户登陆情况,且只能输如三次


int main(){int i=0;char password[20]={0};for(i=0;i<3;i++){printf("请输入密码:>");scanf("%s",password);if(strcmp(password,123456)==0){  //==不能用来比较两个字符串是否相等,应该使用一个库函数--strcmp printf("登陆成功\n");break;}else{printf("密码错误\n");}}if(i==3)printf("三次密码错误,退出程序\n");return 0;

采用二分法查找数组中的指定元素


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;  //右下标 while(left<=right){int mid=(left+right)/2;if(arr[mid]>k){right=mid-1;}else if(arr[mid]<k){left=mid+1;}else{printf("找到了,下标是:%d\n",mid);break;}    }if(left>right){printf("找不到\n");}return 0;
}

打印输出九九乘法表

int main()
{int i=0;int j=0;for(i=1;i<10;i++){    //一共9行 for(j=1;j<=i;j++){printf("%d*%d=%-2d ",i,j,i*j);  //"%-2d"的作用是使打印的结果左对齐 }printf("\n");   //打印完一行再分行 }return 0;
}

数一下1-100中所有整数出现多少个数字9


int main(){int i=0;int count=0;for(i=1;i<=100;i++){if(i%10==9){count++;}if(i/10==9){count++;}}printf("count=%d\n",count);return 0;
}

打印1-200之间的素数,并输出总共有多少个

int main(){int i=0;int count=0;for(i=100;i<=sqrt(i);i++){int j=0;for(j=2;j<i;j++){if(i%j==0){break;}}if(j>sqrt(i)){  //sqrt(i)表示开平方 --记得调用数学库函数count++;printf("%d\n",i);}}printf("count=%d\n",count);return 0;
}

不引用第三个变量,交换两个数的值
 

方法一:int main(){int a,b;  scanf("%d %d",&a,&b);a=a+b;b=a-b;a=a-b;printf("a=%d b=%d\n",a,b);  return 0;
} 
这种方法有缺陷,可能会导致整形溢出 。方法二:int main(){int a,b;scanf("%d %d",&a,&b);a=a^b;b=a^b;a=a^b; printf("a=%d b=%d\n",a,b); return 0;
}

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

程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。

int main()
{int i,j,k;for(i=1;i<5;i++) { // 以下为三重循环for(j=1;j<5;j++) {for (k=1;k<5;k++) { // 确保i、j、k三位互不相同if (i!=k&&i!=j&&j!=k) { printf("%d,%d,%d\n",i,j,k);}}}}
}

企业发放的奖金根据利润提成。

利润(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%提成。

从键盘输入当月利润I,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成双精度浮点(double)型。

#include<stdio.h>int main()
{double i;double bonus, bonus1, bonus2, bonus4, bonus6, bonus10 ;printf("你的净利润是:\n");scanf("%lf",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.075;bonus4=bonus2+200000*0.05;bonus6=bonus4+200000*0.03;bonus10=bonus6+400000*0.015;if(i<=100000) {bonus=i*0.1;} else if(i<=200000) {bonus=bonus1+(i-100000)*0.075;} else if(i<=400000) {bonus=bonus2+(i-200000)*0.05;} else if(i<=600000) {bonus=bonus4+(i-400000)*0.03;} else if(i<=1000000) {bonus=bonus6+(i-600000)*0.015;} else if(i>1000000) {bonus=bonus10+(i-1000000)*0.01;}printf("提成为:bonus=%.3lf",bonus);//结果限制到小数点后三位 return 0; 
}

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

程序分析:

假设该数为 x。

1、则:x + 100 = n2, x + 100 + 168 = m2

2、计算等式:m2 - n2 = (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 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1

7、接下来将 i 的所有数字循环计算即可。

 /* 假设要求的数为: x;* 则x+100=n的平方;x+100+168=m的平方  ; * 从而有:m方-n方=(m+n)*(m-n)=168 ; *  再令m+n=i; m-n=j; i*j=168. */
int main (void)
{int  i, j, m, n, 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 = (i + j) / 2;n = (i - j) / 2;x = n * n - 100;printf ("%d + 100 = %d * %d\n", x, n, n);printf ("%d + 268 = %d * %d\n", x, m, m);printf ("\n");}}}return 0;
}

输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

#include<stdio.h>
int main()
{int year, month, day,sumday=0;int monthday[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };printf("请输入年、月、日,格式为:年,月,日(2015 12 10)\n");scanf("%d %d %d",&year,&month,&day);if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)){monthday[1] =29;         		//闰年的话则把二月置为29天 }for (int i = 0; i < month-1; i++)	{sumday += monthday[i];}sumday += day;printf("这是%d年的第%d天\n",year,sumday);return 0;
}

打印出所有的"水仙花数"

所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

int main()
{int i,x,y,z;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;
}

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:利用while语句,条件为输入的字符不为'\n'。  也可以使用ASCⅡ码作为判断条件。

int main(void)
{char ch;int alpha = 0, num = 0, space = 0, others = 0;printf("请输入一些字母:\n");while((ch = getchar()) != '\n'){if((ch >= 'a' && ch <= 'z')||(ch >='A' && ch <='Z'))alpha++;else if(ch >= '0' && ch <= '9')num++;else if(ch == ' ')space++;elseothers++;}printf("字母=%d,数字=%d,空格=%d,其他=%d",alpha,num,space,others);return 0;
}

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

程序分析:关键是计算出每一项的值。

int main()
{int s=0,a,n,t;printf("请输入要加的数字a和要加的次数n:\n");scanf("%d%d",&a,&n);t=a;while(n>0){s+=t;a=a*10;t+=a;n--;}printf("a+aa+...=%d\n",s);return 0;
}

用递归的方法求一个数的阶乘

//用递归的方法求一个数的阶乘 
int fact(int n)
{if(n == 0 || n == 1)return 1;elsereturn n*fact(n - 1);
}int main(void)
{int i,x;printf("请输入要求多少的阶乘:");scanf("%d",&x);for(i = 0; i <= x; i++){printf("%d! = %d\n",i,fact(i));}return 0;
}

利用递归函数调用方式,将所输入的字符串,以相反顺序打印出来。

#include <stdio.h>void fun()
{char str;if((str=getchar())!='\n') {fun();}if(str!='\n') {printf("%c",str);}
}void main()
{printf("请输入字符: ");fun();
}

相关文章:

C语言小练

目录 打印斐波那契数列指定位置的值 给定两个数&#xff0c;求这两个数的最大公约数 三个数从大到小输出 模拟用户登陆情况&#xff0c;且只能输如三次 采用二分法查找数组中的指定元素 打印输出九九乘法表 数一下1-100中所有整数出现多少个数字9 打印1-200之间的素数&…...

Webhook端口中的自签名身份验证

概述 有时&#xff0c;可能需要通过 Webhook 端口从交易伙伴处接收数据&#xff0c;但该交易伙伴可能需要更多的安全性&#xff0c;而不仅仅是用于验证入站 Webhook 请求的基本身份验证用户名/密码 – 或者您可能只想在入站 Webhook 消息上添加额外的安全层。 使用 Webhook 端…...

CSS预处理器(如Sass或Less):变量、嵌套规则和混合器等高级功能

在Vue项目中&#xff0c;可以使用CSS预处理器&#xff08;如Sass或Less&#xff09;来编写样式。 这些预处理器提供了一些高级功能&#xff0c;如变量、嵌套规则和混合器等。 1. 变量 在Sass中&#xff0c;我们可以使用$符号定义变量。这些变量方便我们在多个地方重复使用&a…...

【Linux】Linux第一个小程序 --- 进度条

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和Linux还有算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 …...

每日一练:约瑟夫生者死者小游戏

1. 问题描述 约瑟夫问题&#xff08;Josephus problem&#xff09;是一个经典的数学和计算机科学问题&#xff0c;源于犹太历史学家弗拉维奥约瑟夫斯&#xff08;Flavius Josephus&#xff09;的著作《犹太战记》。问题的描述如下&#xff1a;   在这个问题中&#xff0c;有n…...

双指针算法(题目与答案讲解)

文章目录 题目移动零复写零两数之和N数之和(>2个数) 答案讲解移动零复写零两数之和N数之和 题目 力扣 移动零 1、移动零:题目链接 复写零 2、复写零:题目链接 两数之和 3、两数之和题目链接 N数之和(>2个数) 4、N数之和(三个数、四个数) 三个数:题目链接 四个数题目链接…...

python服装电商系统vue购物商城django-pycharm毕业设计项目推荐

系统面向的使用群体为商家和消费者&#xff0c;商家和消费者所承担的功能各不相同&#xff0c;所对象的权限也各不相同。对于消费者和商家设计的功能如下&#xff1a; 对于消费者设计了五大功能模块&#xff1a; &#xff08;1&#xff09; 商品信息&#xff1a;用户可在商品…...

数据治理技术:研究现状与数据规范

随着信息技术的迅速发展,数据规模逐渐扩大&#xff0c;与此同时&#xff0c;劣质数据也随之而来&#xff0c;极大地降低了数据挖掘的质量&#xff0c;对信息社会造成了严重的困扰&#xff0c;劣质数据大量存在于很多领域和机构&#xff0c;国外权威机构的统计表明&#xff1a;美…...

一文彻底理解索引下推

了解索引下推吗&#xff1f;二级索引取出的数据是依次回表还是一次回表&#xff1f;索引下推是为了什么发明的&#xff1f; 看完这个文章你将知道上面的问题。 索引下推的概念 从MySQL5.6开始引入的一个特性,索引下推通过减少回表的次数来提高数据库的查询效率; 注意&#…...

Springboot3+vue3从0到1开发实战项目(一)

一. 可以在本项目里面自由发挥拓展 二. 知识整合项目使用到的技术 后端开发 &#xff1a; Validation, Mybatis,Redis, Junit,SpringBoot3 &#xff0c;mysql&#xff0c;Swagger, JDK17 &#xff0c;JWT&#xff0c;项目部署 前端开发&#xff1a; Vue3&#xff0c;Vite&am…...

[字符串操作] 有年代的病历单

有年代的病历单 题目描述 小英是药学专业大三的学生&#xff0c;暑假期间获得了去医院药房实习的机会。 在药房实习期间&#xff0c;小英扎实的专业基础获得了医生的一致好评&#xff0c;得知小英在计算概论中取得过好成绩后&#xff0c;主任又额外交给她一项任务&#xff0c…...

怎么批量提取文件名字到Excel中?

怎么批量提取文件名字到Excel中&#xff1f;Excel是由微软公司开发的一种电子表格软件&#xff0c;它是Microsoft Office办公套件的一部分。Excel提供了强大的数据处理和分析功能&#xff0c;用户可以使用Excel创建、编辑和管理电子表格&#xff0c;进行各种计算、数据分析、图…...

QT搭建的Ros/librviz的GUI软件

1.前言 开发初期学习了下面博主的文章&#xff0c;也报了他在古月局的课&#xff0c;相当于感谢吧。 ROS Qt5 librviz人机交互界面开发一&#xff08;配置QT环境&#xff09;-CSDN博客​​​​​​​r 软件前期也是参考他的开源项目 GitHub - chengyangkj/Ros_Qt5_Gui_App …...

Docker 概述与安装

文章目录 1. Docker简介2. 传统虚拟机和容器3. Docker运行速度快的原因4. Docker软件4.1 Docker镜像4.2 Docker容器4.3 Docker仓库 5. Docker架构6. CentOS安装Docker6.1 卸载旧版本6.2 配置yum资源库6.3 安装Docker引擎6.4 启动docker引擎6.5 设置开机自启 7. 卸载Docker8. 运…...

JS作用域与作用域链

让我为大家介绍一下作用域与作用域链吧&#xff01; 作用域 作用域规定了变量能够访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问。 作用域分为&#xff1a;局部作用域&#xff0c;全局作用域 一、局部作用域 局部作用域分为函数作用域与块作用域 1.函数作…...

elmentui 查看大图组件 点击图片关闭弹窗方法

elmentui 查看大图组件 点击图片关闭弹窗方法 html <el-imageref"Imgs":src"item.url ? item.url : ":preview-src-list"item.url ? [item.url] : []"click.stop"handlePreviewClose"class"alarm_img"/>js //图片…...

蓝桥杯官网练习题(最长子序列)

题目描述 我们称一个字符串S 包含字符串 T 是指 T 是 S 的一个子序列&#xff0c;即可以从字符串 S 中抽出若干个字符&#xff0c;它们按原来的顺序组合成一个新的字符串与 T 完全一样。 给定两个字符串 S 和 T&#xff0c;请问 T 中从第一个字符开始最长连续多少个字…...

Make sure that using this pseudorandom number generator is safe here.

问题类型&#xff1a;安全热点 安全问题级别&#xff1a;MEDIUM 一、问题代码 工具类Package&#xff1a; Java commons-lang3 库 RandomUtils 随机数工具类 import org.apache.commons.lang3.RandomUtils; 用法&#xff1a; RandomUtils.nextInt(0, 999999999) //生成 0…...

【C/C++】常见模拟题题解

题解 模拟双目运算符一元二次方程求解水仙花数统计学生成绩学生成绩管理模拟选举大小写字符转换最大公约数、最小公倍数字符串反序 模拟双目运算符 编写一个根据用户键入的两个操作数和一个双目运算符&#xff0c;由计算机输出结果的程序。 #include<stdio.h>int opera…...

TikTok 购物和直播的 5 个简单技巧

TikTok 的一切都很大&#xff1a;应用程序下载量、受众规模和病毒式营销活动。因此&#xff0c;该公司多方面进军社交商务也就不足为奇了。是的&#xff0c;这将是巨大的。自去年年底以来&#xff0c;TikTok Shopping 和TikTok 直播购物活动已在一些市场上线&#xff0c;并将于…...

多租户下的系统业务开发过程探讨痛

一、背景与问题缘起 MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作&#xff0c;需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT 注释&#xff08;因业务实际需要存储大数值关联字段&#xff09;。 表的核心特性为Java 多线程密集读写&#xff0c;业务请求持续高…...

Windows与Office智能激活终极指南:KMS_VL_ALL_AIO全解析

Windows与Office智能激活终极指南&#xff1a;KMS_VL_ALL_AIO全解析 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office激活烦恼吗&#xff1f;KMS_VL_ALL_AIO是一款功能强大…...

Stimulsoft 报告和仪表盘2026.2即将推出,来看具体详情

Stimulsoft Reports & Dashboards 2026.2 版本即将发布。本次更新将围绕报表查看器、数据源能力、参数验证以及仪表盘设计等多个方向展开&#xff0c;进一步增强产品在报表开发与可视化分析场景中的灵活性与智能化水平。 从 React 报表查看器&#xff0c;到由人工智能驱动…...

2025河北石家庄/邯郸唐山机械互动屏设计如何重塑展厅叙事

你是否曾站在展厅里&#xff0c;看着墙上静态的文字与图片&#xff0c;心里却渴望“走进”故事里&#xff1f;或是带着孩子观展&#xff0c;却难以让他对玻璃后的文物投去好奇的一瞥&#xff1f;传统展厅正在经历一场静默的革命——当机械的精密与屏幕的智能相遇&#xff0c;展…...

无锁队列(Lock-Free Queue)

无锁队列原理 无锁队列&#xff08;Lock-Free Queue&#xff09;是一种基于无锁编程&#xff08;Lock-Free Programming&#xff09;技术实现的并发数据结构。它的核心思想是&#xff1a; 1.基础原理 使用 CAS&#xff08;Compare-And-Swap&#xff0c;比较并交换&#xff09;等…...

别再手动改后缀了!QGIS 3.28 保姆级教程:5分钟搞定CSV/TXT/JSON数据转SHP矢量图层

别再手动改后缀了&#xff01;QGIS 3.28 保姆级教程&#xff1a;5分钟搞定CSV/TXT/JSON数据转SHP矢量图层 每次看到同事对着文件右键重命名&#xff0c;把.xlsx改成.csv的时候&#xff0c;我的GIS从业者DNA都会颤抖一下——这种"暴力转换"不仅可能损坏数据&#xff0…...

DeepSeek-OCR-2部署指南:Docker镜像开箱即用,无网络依赖保隐私

DeepSeek-OCR-2部署指南&#xff1a;Docker镜像开箱即用&#xff0c;无网络依赖保隐私 1. 项目简介 DeepSeek-OCR-2 是一个基于深度学习的智能文档解析工具&#xff0c;专门为解决文档数字化难题而设计。与传统的OCR工具只能提取纯文本不同&#xff0c;这个工具能够理解文档的…...

【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Unity游戏里加个AI助手?手把手教你用豆包Doubao-1.5-pro-32k实现流式对话(附完整C#代码)

在Unity中打造智能AI助手&#xff1a;用豆包Doubao-1.5-pro-32k实现沉浸式对话体验 想象一下&#xff0c;你的游戏角色不再只是机械地重复预设台词&#xff0c;而是能够根据玩家的提问做出智能回应——这种体验在《赛博朋克2077》等3A大作中已经实现&#xff0c;而现在&#xf…...

VisualCppRedist AIO:一站式解决Windows运行库问题的完整指南

VisualCppRedist AIO&#xff1a;一站式解决Windows运行库问题的完整指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在运行某些软件时遇到"…...