1.通过递归的方式打印八进制,使用递归的方式一般会有if,else。

2.将数字转字符串,字符串转数字

//#define _CRT_SECURE_NO_WARNINGS    //取消安全性检查,如果不加这一句的时候scanf将报错。

#include <stdio.h>

#include <stdlib.h>

/************************************************************************/

/* 获得数字的长度                                                      */

/************************************************************************/

int getNumLength(int num)

{

int numLength = 0, inum;

for (inum = num; inum; inum /= 10)

{

numLength++;

}

return numLength;

}

/************************************************************************/

/* 获得10位的值                                                        */

/************************************************************************/

int get10(int n)

{

int res = 1;

for (int i = 0; i < n; i++)

{

res *= 10;  //不断相乘

}

return res;

}

/************************************************************************/

/* 将一个字符串变成数字                                                                    */

/************************************************************************/

int character2Integer(char *str)//-1代表失败

{

char *istr = str;//保留副本

int num = 0;

while (*str != '\0')

{

if ((*str)<'0' || (*str)>'9')

{

return  -1;

}

//printf("%c\n",*str);//取出每一个字符

*str++;

num++;//计数,判断有多少位

}

printf("%d", num);

int lastres = 0;   //12345  1 12  123 1234 12345

for (int i = 0; i < num; i++)

{

lastres *= 10;   //结果乘以10

int wei = istr[i] - 48;//取出字符

lastres += wei;//累加

printf("\nwei=%d", wei);//打印字符转换为整数的位

}

return  lastres;

}

/************************************************************************/

/* 将数字转换成为字符串                                                */

/************************************************************************/

void interger2character(int num,char *str)

{

int i;

int size = getNumLength(num);

//printf("%d",size);

if (num < 0)

{

str[0] = '-';

num *= -1;

for (i = size; num; num /= 10, i--)

{

str[i] = num % 10 + 48;

}

}

else {

for (i = size - 1; num; num /= 10, i--)

{

str[i] = num % 10 + 48;

}

}

}

int main(int argc, char *argv[])

{

char *str = "1234567890";//编号为0的字符

char str2[20] = {0};

//1、整形转字符串

int num = -123456,i;

interger2character(num,str2);

//2、打印字符串

for (i = 0; i < 20;i++)

{

putchar(str2[i]);

}

putchar(10);

printf("-------------------------------------\n");

num = character2Integer(str);

printf("\n得到的数字是:%d\n", num);

system("pause");

return 0;

}

3、判断数组正逆序,文件案例结构如下:

judgeArrayIfDecreaseByRecursion.h

#ifndef _JUDGEARRAY_

#define _JUDGEARRAY_

/************************************************************************/

/* 随机生成数组                                                        */

/************************************************************************/

extern void initArray(int *arr,int n);

/************************************************************************/

/* 打印数组内容                                                        */

/************************************************************************/

extern void printArray(int *arr,int n);

/************************************************************************/

/* 选择排序,升序                                                      */

/************************************************************************/

extern void sortArrayASC(int *arr, int n);

/************************************************************************/

/* 选择排序,降序                                                      */

/************************************************************************/

extern void sortArrayDESC(int *arr,int n);

/************************************************************************/

/* 通过递归的方式查找数组是否是递减0表示非递减,1表示递减               */

/************************************************************************/

extern int judgeArrayIfDesc(int *arr, int n, int i);

#endif

judgeArray.c

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include "judgeArrayIfDecreaseByRecursion.h"

/************************************************************************/

/* 生成范围在n之内的数组                                                                    */

/************************************************************************/

void initArray(int *arr, int n)

{

//初始化随机种子

srand((int)time(NULL));

for (int i = 0; i < n; i++)

{

arr[i] = rand()%n;

}

}

/************************************************************************/

/* 打印数组内容                                                        */

/************************************************************************/

void printArray(int *arr, int n)

{

int i = 0;

for (i; i < n; i++)

{

printf("%d ",arr[i]);

}

putchar(10);

}

/************************************************************************/

/* 选择排序,升序                                                      */

/************************************************************************/

void sortArrayASC(int *arr, int n)

{

int i, min, j, tmp;

for (i = 0; i < n;i++)

{

min = i;   //a[i]

for (j = i + 1; j < n;j++)

{

if (arr[min] > arr[j])

{

min = j;

}

}

tmp = arr[i];

arr[i] = arr[min];

arr[min] = tmp;

}

}

/************************************************************************/

/* 选择排序,降序                                                                    */

/************************************************************************/

void sortArrayDESC(int *arr, int n)

{

int i, max, j, tmp;

for (i = 0; i < n;i++)

{

max = i;

for (j = i + 1; j < n;j++)

{

if (arr[max] < arr[j])

{

max = j;

}

}

tmp = arr[i];

arr[i] = arr[max];

arr[max] = tmp;

}

}

/************************************************************************/

/* 通过递归的方式查找数组是否是递减0表示非递减,1表示递减               */

/************************************************************************/

int judgeArrayIfDesc(int *arr, int n,int i)

{

//int i = 0,j;

/*for (i = 0; i < n;i++)

{

for (j = i + 1; j < n;j++)

{

if (arr[i] < arr[j])

{

return 0;

}

}

}*/

if (i + 1 < n )

{

return (arr[i] < arr[i + 1]) ? 0 : judgeArrayIfDesc(arr, n, i + 1);

}

return 1;

}

judgeArrayIfDecreaseByRecursion.c

#include <stdio.h>

#include <stdlib.h>

#include "judgeArrayIfDecreaseByRecursion.h"

#define N 20

int main(int argc, char *argv[])

{

int arr[N];

int res;

initArray(arr,N);

printArray(arr, N);

sortArrayDESC(arr,N);

//sortArrayASC(arr, N);

printArray(arr, N);

res = judgeArrayIfDesc(arr, N,0);

switch (res)

{

case 0:printf("非递减\n"); break;

case 1:printf("递减\n");break;

}

system("pause");

return 0;

}

递归实现10进制转8进制,字符串数字互转,判断数组正逆向相关推荐

  1. 【蓝桥杯】python进制转换16进制转8进制。16进制转10进制。10进制转16进制。

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 样例输入 2 39 123ABC 样例输出 71 4435274 n = int(input()) #输入一个正整数n,表示n个十六进制正整 ...

  2. 16进制转8进制 两种方法先转二进制在转8进制或先转10进制在转8进制

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母AF组成的字符串,表示要转换的 ...

  3. 题目1208:10进制 VS 2进制(进制转换以及大数保存问题)

    题目链接:http://ac.jobdu.com/problem.php?pid=1208 详细链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  4. leetcode 168. Excel表列名称(10进制转26进制)

    题目 思路 10进制转26进制 经过分析,我们不难发现,这是一个26进制和十进制相互转换的问题.序列A-Z依次对应序列1-26.进制转换的基本办法就是"取余法",换算规则如下: A ...

  5. 数据结构---递归实现十进制装换为任意进制

    数据结构-递归实现十进制装换为任意进制 代码: #include <stdio.h> #include <stdlib.h> #include"stack.h&quo ...

  6. python16进制转10进制_python 字节串及10进制,16进制相关转换

    进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: in ...

  7. PHP实现8进制转10进制,php 实现进制相互转换

    从十进制向其它进制转换,用的是就用该数字不断除以要转换的进制数,读取余数.连接一起就可以了. /** *十进制转二进制.八进制.十六进制 不足位数前面补零* * * @param array $dat ...

  8. 【C++】R进制转10进制,10进制转R进制

    1.10进制转R进制 直接对每一位做除法,求对应余数累加上去即可. #include<bits/stdc++.h> using namespace std; typedef long lo ...

  9. 16进制数组转成10进制 qt_QT 16进制 ASII   10进制 转换

    //16进制字符串转字节数组 static QByteArray HexStrToByteArray(QString str) { QByteArray senddata;  //发送数据 int h ...

最新文章

  1. 日常积累的一些linux和运维的东西 [转]
  2. Pixhawk之姿态控制篇(1)_源码算法分析(超级有料)
  3. 中国工商银行基金定投
  4. Nginx下配置Http Basic Auth
  5. angular监听输入框值的变化_如何检测Angular中@Input()值何时发生变化?
  6. 用C#写的汉语转拼音缩写的例子
  7. python列表元素循环左移_JavaScript系列——数组元素左右移动N位算法实现
  8. 浅谈如何设计MySQL索引
  9. Git下载与安装 Windows
  10. 20 年来,从微软亚洲研究院走出了中国互联网的半壁江山
  11. 微信公众号数据2019_微信公众号榜单排名,2020微信公众号排名
  12. 怎么确定自己毕业论文方向?
  13. 纯css3彩色3d雪糕
  14. 【C++】C++实战项目机房预约管理系统
  15. 气体报警器为什么需要定期校准
  16. 无参考图像评价指标NIQE——自然图像质量
  17. Java笔记013-IDEA、包、访问修饰符、封装、继承、多态、Super、方法重写/覆盖(override)、java的动态绑定机制
  18. 买一台 iPhone X,还是创建一家未来的独角兽? 1
  19. 2021年3月1日 星期一 冬月八九 阴
  20. c语言分数乘法用指针,分数乘法练习题全套(整理打印版)

热门文章

  1. 第二章 循环结构程序设计
  2. ActiveMQ集成Spring
  3. OpenCASCADE绘制测试线束:拓扑命令之复杂拓扑
  4. wxWidgets 电源管理示例
  5. wxWidgets:wxDataInputStream类用法
  6. wxWidgets:wxComboBox类用法
  7. boost::safe_numerics模块实现检测到错误表达式评估的测试程序
  8. boost::hana::int_c用法的测试程序
  9. boost::graph模块实现包含平均测地线示例
  10. boost::int64_t模块int64 范围的测试程序