C语言编程经典100例——21至30例

目录

第 21 例

第 22 例

第 23 例

第 24 例

第 25 例

第 26 例

第 27 例

第 28 例

第 29 例

第 30 例


第 21 例

程序源码:

/*
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少桃子。程序分析:采取逆向思维的方法,从后往前推断。1) 设x1为前一天桃子数,设x2为第二天桃子数, 则:x2=x1/2-1, x1=(x2+1)*2x3=x2/2-1, x2=(x3+1)*2以此类推: x前=(x后+1)*22) 从第10天可以类推到第1天,是一个循环过程。
*/#include <stdio.h>
#include <stdlib.h>int main()
{int day, x1 = 0, x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;  // 第一天的桃子数是第2天桃子数加1后的2倍x2=x1;day--;}printf("第一天共摘了 %d 个桃子。\n",x1);printf ("\n");return 0;
}

程序运行结果:

第 22 例

程序源码:

/*
题目:两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单,有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三对赛手的名单。程序分析:详见下面的代码。
*/#include <stdio.h>
#include <stdlib.h>int main()
{char i,j,k;for(i='x';i<='z';i++){for(j='x';j<='z';j++){if(i!=j){for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z'){printf("三对赛手的名单为:\na--%c\nb--%c\nc--%c\n",i,j,k);}}}}}}return 0;
}

程序运行结果:

第 23 例

程序源码:

/*
题目:打印出如下图案(菱形)。*********
****************程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
*/#include <stdio.h>int main()
{int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++){printf(" ");}for(k=0;k<=2*i;k++){printf("*");}printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++){printf(" ");}for(k=0;k<=4-2*i;k++){printf("*");}printf("\n");}return 0;
}

程序运行结果:

第 24 例

程序源码:

/*
题目:有一个分数数列如下,2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。程序分析:重点是抓住分子与分母的变化规律。
*/#include <stdio.h>int main()
{int i,t;float sum=0;float a=2,b=1;for(i=1;i<=20;i++){sum=sum+a/b;t=a;a=a+b;b=t;}printf("这个数列的前20项之和等于 %9.6f\n",sum);return 0;
}

程序运行结果:

第 25 例

程序源码:

/*
题目:求1!+2!+3!+...+20!的值。程序分析:此程序只是把累加变成了累乘。
*/#include <stdio.h>int main()
{int i;long double sum,mix;sum=0,mix=1;for(i=1;i<=20;i++){mix=mix*i;sum=sum+mix;}  printf("1!+2!+3!+...+20! = %lf\n",sum);return 0;
}

程序运行结果:

第 26 例

程序源码:

/*
题目:利用递归方法求5!。程序分析:递归公式:f(n)=f(n-1)*n
*/#include <stdio.h>int main()
{int i;int fact(int);for(i=0;i<6;i++){printf("%d! = %d\n",i,fact(i));}return 0;
}int fact(int j)
{int sum;if(j==0){sum=1;}else{sum=j*fact(j-1);}return sum;
}

程序运行结果:

第 27 例

程序源码:

/*
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。程序分析:详见下面的代码。
*/#include <stdio.h>int main()
{int i=5;void palin(int n);printf("请输入5个字符:");palin(i);printf("\n");return 0;
}void palin(int n)
{char next;if(n<=1){next=getchar();printf("相反顺序输出结果是:");putchar(next);}else{next=getchar();palin(n-1);putchar(next);}
}

程序运行结果:

第 28 例

程序源码:

/*
题目:编写一个程序计算两个矩阵的叉乘,并输出结果。程序分析:详见下面的代码。
*/#include <stdio.h>#define N 3
#define M 4int main ()
{int a[N][M],b[M][N];    //定义二维整型数组a和b。int i,j,k,s;printf ("请输入二维整型数组a的12个元素:\n");//利用双重循环通过键盘给二维整型数组a赋值。for (i=0;i<N;i++){for (j=0;j<M;j++){printf ("a[%d][%d]=",i,j);scanf ("%d",&a[i][j]);}}printf ("\n请输入二维整型数组b的12个元素:\n");//利用双重循环通过键盘给二维整型数组a赋值。for (i=0;i<M;i++){for (j=0;j<N;j++){printf ("b[%d][%d]=",i,j);scanf ("%d",&b[i][j]);}}//输出二维整型数组a。printf ("\n二维整型数组a:\n");for (i=0;i<N;i++){for (j=0;j<M;j++){printf ("%-5d",a[i][j]);}printf ("\n");}//输出二维整型数组b。printf ("\n二维整型数组b:\n");for (i=0;i<M;i++){for (j=0;j<N;j++){printf ("%-5d",b[i][j]);}printf ("\n");}//计算 s = a×b 的值,并输出 s 的值。printf ("\n“二维整型数组a×二维整型数组b”的结果是:\n");for (i=0;i<N;i++){for (j=0;j<N;j++){for (k=s=0;k<M;k++){s+=a[i][k]*b[k][j];}printf ("%-10d",s);}printf ("\n");}printf ("\n");return 0;
}

程序运行结果:

第 29 例

程序源码:

/*
题目:给一个不多于5位的正整数,求它是几位数,并逆序打印出各位数字。程序分析:分解出每一位数,详见下面的代码。
*/#include <stdio.h>int main( )
{long a,b,c,d,e,x;printf("请输入一个不多于 5 位的正整数:");scanf("%ld",&x);a=x/10000;        //分解出万位b=x%10000/1000;   //分解出千位c=x%1000/100;     //分解出百位d=x%100/10;       //分解出十位e=x%10;           //分解出个位if (a!=0){printf("该数字为 5 位数,逆序输出为:%ld%ld%ld%ld%ld\n",e,d,c,b,a);}else if(b!=0){printf("该数字为 4 位数,逆序输出为:%ld%ld%ld%ld\n",e,d,c,b);} else if(c!=0){printf("该数字为 3 位数,逆序输出为:%ld%ld%ld\n",e,d,c);} else if(d!=0){printf("该数字为 2 位数,逆序输出为:%ld%ld\n",e,d);} else if(e!=0){printf("该数字为 1 位数,逆序输出为:%ld\n",e);}return 0;
}

程序运行结果:

第 30 例

程序源码:

/*
题目:输入一个5位数,判断它是不是回文数。个位与万位相同,十位与千位相同的5位数是回文数,比如12321是回文数。程序分析:分解出每一位数,详见下面的代码。
*/#include <stdio.h>int main( )
{long ge,shi,qian,wan,x;printf("请输入一个 5 位数:");scanf("%ld",&x);wan=x/10000;        //分解出万位qian=x%10000/1000;  //分解出千位shi=x%100/10;       //分解出十位ge=x%10;            //分解出个位if (ge==wan&&shi==qian){ //个位等于万位并且十位等于千位printf("%d 是回文数!\n",x);}else{printf("%d 不是回文数!\n",x);}return 0;
}

程序运行结果:

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

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

相关文章

渗透测试框架——Cobalt Strike

渗透测试框架——Cobalt Strike Cobalt Strike是一款非常成熟的渗透测试框架。Cobalt Strike在3.0版本之前是基于Metasploit框架工作的&#xff0c;可以使用Metasploit的漏洞库。从3.0版本开始&#xff0c;Cobalt Strike不再使用Metasploit的漏洞库&#xff0c;成为一个独立的…

JavaEE:多线程(1):线程是啥?怎么创建和操作?

进程的问题 本质上来说&#xff0c;进程可以解决并发编程的问题 但是有些情况下进程表现不尽如人意 1. 如果请求很多&#xff0c;需要频繁的创建和销毁进程的时候&#xff0c;此时使用多进程编程&#xff0c;系统开销就会很大 2. 一个进程刚刚启动的时候&#xff0c;需要把…

自动化测试Selenium node 配置

查看自己chrome浏览器的版本 下载chromedriver对应版本&#xff0c;下载当前版本中最大版本。 https://npm.taobao.org/mirrors/chromedriver 安装java jdk &#xff0c;版本至少1.7, 并配置jdk环境变量 以下2个文件放在同一个目录下 Cmd地址切换到第四点目录下&#xff0c;然…

Android开发的技术与开发流程

目录 引言 1. Android开发环境搭建 1. 安装Java Development Kit&#xff08;JDK&#xff09; 2. 安装Android Studio 3. 配置虚拟设备&#xff08;可选&#xff09; 4. 创建你的第一个Android项目 5. 连接实体设备&#xff08;可选&#xff09; 2. Android基础知识 1…

影响云渲染质量的几大要素是什么?影响云渲染质量的主要原因有?

对于3D渲染从业者而言&#xff0c;实现高效和高质量的渲染是一个常见的挑战。由于三维场景的复杂性&#xff0c;相关计算和处理通常需要大量的计算能力和存储&#xff0c;尤其是当面对着高分辨率图像、详细的动画或全局光照效果等要求时&#xff0c;渲染时间往往会大幅增加。针…

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。(第三天)

有什么不懂可以去看我前两天的笔记 https://blog.csdn.net/weixin_70007095/article/details/134905674 目录 有什么不懂可以去看我前两天的笔记 JavaScript 进阶 - 第3天笔记 编程思想 面向过程 面向对象 构造函数 原型对象 constructor 属性 对象原型 原型继承 原型链 JavaSc…

HarmonyOS学习 第2节 DevEco Studio工程介绍

工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 工程目录区 便于理解&#xff0c;可以切换为 Ohos AppScope主要用于存放整个应用公共的信息与资源 entry默认的初始模块ets文件用于存放编写的代码文件configuration存放相应模块的配置文件resources对应模块…

leetcode 1466

leetcode 1466 使用dfs 遍历图结构 如图 node 4 -> node 0 -> node 1 因为节点数是n, 边长数量是n-1。所以如果是从0出发的路线&#xff0c;都需要修改&#xff0c;反之&#xff0c;如果是通向0的节点&#xff0c;例如节点4&#xff0c;则把节点4当作父节点的节点&…

保障网络安全:了解威胁检测和风险评分的重要性

在当今数字时代&#xff0c;网络安全问题变得愈发突出&#xff0c;而及时发现和迅速应对潜在威胁成为保障组织信息安全的首要任务。令人震惊的是&#xff0c;根据2023年的数据&#xff0c;平均而言&#xff0c;检测到一次网络入侵的时间竟然长达207天。这引起了对安全策略和技术…

威睿三合一电驱动系统斩获“2023汽车新供应链百强-金辑奖”

10月19日&#xff0c;2023第五届“金辑奖”颁奖盛典在上海圆满落幕。威睿公司“高效低噪碳化硅电驱动系统”在动力总成电气化领域脱颖而出&#xff0c;荣获“2023中国汽车新供应链百强”荣誉称号。 “金辑奖”由盖世发起&#xff0c;旨在“发现好公司推广好技术成就汽车人”&a…

利用机器学习实现客户细分:提升市场营销效果的技术策略

客户细分是一项关键的市场营销策略&#xff0c;可以帮助企业更好地了解其目标受众&#xff0c;个性化定制产品和服务&#xff0c;提高市场营销效果。本文将介绍如何利用机器学习算法实现客户细分&#xff0c;包括数据准备、特征工程、算法选择、模型训练和评估等关键步骤。通过…

一文5000字从0到1构建高效的接口自动化测试框架思路

在选择接口测试自动化框架时&#xff0c;需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说&#xff0c;使用Python相关的测试框架更为便捷。无论选择哪种框架&#xff0c;重要的是确保 框架功能完备&#xff0c;易于维护和扩展&#xff0c;提高测试效率和准确性。…

雪花算法详细讲解

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

36、什么是池化算法

池化算法也是 CNN 网络中非常常见的算法。 池化这一算法理解起来比较简单,从名字中或许可以看到一些东西:从一个像素池子中选取一些有代表性的像素出来。 常见的池化有最大池化和平均池化。最大池化就是从像素池子中选取最大值出来,而平均池化就是从像素池子中选取平均值出…

MySQL8.0默认配置详解--持续更新中

binlog日志的默认保留数量和大小 在MySQL 8.0中&#xff0c;您可以使用以下SQL命令来查询binlog日志的默认保留数量和大小&#xff1a; SHOW VARIABLES LIKE binlog_expire_logs_seconds; SHOW VARIABLES LIKE max_binlog_size;binlog_expire_logs_seconds 变量表示binlog日志…

Linux---mkdir和rm命令选项

1. mkdir命令选项 命令选项说明-p创建所依赖的文件夹 mkdir命令选项效果图: 2. rm命令选项 命令选项说明-i交互式提示-r递归删除目录及其内容-f强制删除&#xff0c;忽略不存在的文件&#xff0c;无需提示-d删除空目录 rm -i命令选项效果图: rm -r命令选项效果图: rm -f命…

【c】数组元素移动

本题的难点之处就是不让你创建新的数组&#xff0c;而且移动的距离也没有给限制&#xff0c;比如有7个数&#xff0c;本题没有限制必须移动距离小于7&#xff0c;也可能移动的距离大于7&#xff0c;甚至更多&#xff0c;下面附上我的代码 #include<stdio.h>int main() {…

RK3568平台 OTA升级原理

一.前言 在迅速变化和发展的物联网市场&#xff0c;新的产品需求不断涌现&#xff0c;因此对于智能硬件设备的更新需求就变得空前高涨&#xff0c;设备不再像传统设备一样一经出售就不再变更。为了快速响应市场需求&#xff0c;一个技术变得极为重要&#xff0c;即OTA空中下载…

关于“Python”的核心知识点整理大全12

目录 6.3.3 按顺序遍历字典中的所有键 6.3.4 遍历字典中的所有值 6.4 嵌套 6.4.1 字典列表 aliens.py 6.4.2 在字典中存储列表 pizza.py favorite_languages.py 注意 往期快速传送门&#x1f446;&#xff08;在文章最后&#xff09;&#xff1a; 6.3.3 按顺序遍历字…

VR全景技术对房产行业有什么好处,如何帮助展示户型

引言&#xff1a; 随着科技的飞速发展&#xff0c;VR全景技术逐渐走入我们的生活&#xff0c;为我们带来了前所未有的沉浸式体验。在房产行业&#xff0c;VR全景技术正逐渐改变传统的户型和样板间展示方式&#xff0c;为购房者带来更为直观、真实的购房体验。 一、VR全景技术在…