C语言经典习题100例(六)26-30
时间:2022-07-22
本文章向大家介绍C语言经典习题100例(六)26-30,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
习题26
利用递归方法求5!。
实现思路: 使用递归。
代码如下:
#include<stdio.h>
int main(){
int rec(int n);
int result = rec(5);
printf("5! = %dn", result);
return 0;
}
int rec(int n){
if(n == 1 || n == 0){
return 1;
}
else{
return n * rec(n - 1);
}
}
打印:
5! = 120
习题27
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
实现思路: 使用递归。
代码如下:
#include<stdio.h>
int main(){
void rev(int n);
printf("Please input 5 characters:n");
rev(5);
return 0;
}
void rev(int n){
char ch;
if(n <= 1){
ch = getchar();
printf("Result is as follows:n");
putchar(ch);
}
else{
ch = getchar();
rev(n - 1);
putchar(ch);
}
}
打印:
Please input 5 characters:
acdfg
Result is as follows:
gfdca
习题28
有 5 个人坐在一起: 问第5个人多少岁,他说比第 4 个人大 2 岁;问第 4 个人岁数,他说比第 3 个人大 2 岁;问第3个人,又说比第 2 人大两岁;问第 2 个人,说比第1个人大两岁;最后问第1个人,他说是 10 岁。 请问第五个人多大?
实现思路: 可以简单倒推、使用循环即可。 这里为了熟悉递归的思想,因此采用递归方法实现: 要想知道第5个人岁数,需知道第四人的岁数,依次类推,推到第1人(10岁),再往回推。
代码如下:
#include<stdio.h>
int main(){
int age(int n);
int a = age(5);
printf("The age of the 5th person is %dn", a);
return 0;
}
int age(int n){
if(n == 1){
return 10;
}
else{
return age(n - 1) + 2;
}
}
打印:
The age of the 5th person is 18
习题29
给一个不多于 5 位的正整数,要求: 一、求它是几位数; 二、逆序打印出各位数字。
实现思路: 逐位获取并判断。
代码如下:
#include<stdio.h>
int main(){
int a, b, c, d, e, num;
printf("Please enter a five digit number:n");
scanf("%d", &num);
a = num / 10000;
b = num % 10000 / 1000;
c = num % 1000 / 100;
d = num % 100 / 10;
e = num % 10;
if(a != 0){
printf("This number is five digitsnThe reversed num is %d, %d, %d, %d, %dn", e, d, c, b, a);
}
else if(b != 0){
printf("This number is four digitsnThe reversed num is %d, %d, %d, %dn", e, d, c, b);
}
else if(c != 0){
printf("This number is three digitsnThe reversed num is %d, %d, %dn", e, d, c);
}
else if(d != 0){
printf("It's a two digit numbernThe reversed num is %d, %dn", e, d);
}
else{
printf("This number is one digitnThe reversed num is %dn", e);
}
return 0;
}
打印:
Please enter a five digit number:
19537
This number is five digits
The reversed num is 7, 3, 5, 9, 1
习题30
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
实现思路: 获取每一位的数,并比较判断。
代码如下:
#include<stdio.h>
int main(){
int a, b, d, e, num;
printf("Please enter a five digit number:n");
scanf("%d", &num);
a = num / 10000;
b = num % 10000 / 1000;
d = num % 100 / 10;
e = num % 10;
if(a == e && b == d){
printf("%d is a palindrome numbern", num);
}
else{
printf("%d is not a palindrome numbern", num);
}
return 0;
}
打印:
Please enter a five digit number:
12321
12321 is a palindrome number
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- IDEA 报错:no tests were found 和 UnsupportedOperationException
- Angular sandbox项目的tsconfig.json内容一览
- Java 后台开发面试题分享二
- axios 进行同步请求(async+await)
- Axios 各种请求方式传递参数格式
- axios POST提交数据的三种请求方式写法
- Json对象和Json字符串的区别
- 合并/拆分 Excel?Python、VBA轻松自动化
- (数据科学学习手札96)在geopandas中叠加在线地图
- 秋天的第一杯奶茶该买哪家?Python 爬取美团网红奶茶店告诉你
- AttributeError: NoneType object has no attribute‘’
- tf.control_dependencies(control_inputs)
- tf.get_collection()
- tf.reduce_mean()
- tf.placeholder函数说明