开发者社区> 贺利坚> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

C语言程序设计实践(OJ)-递归函数与宏

简介: 2968: 递归方法实现逆序 Description 你知道递归么?简单来说,递归就是函数自身对自身的调用,直到遇到终止条件,再对数据做逆向处理,下面就有一个递归的简单例子等你来处理。 #include <stdio.h> void inverted(int); /*函数声明*/ int main() { int n; /*需要逆序的整数*/
+关注继续查看

2968: 递归方法实现逆序

Description
你知道递归么?简单来说,递归就是函数自身对自身的调用,直到遇到终止条件,再对数据做逆向处理,下面就有一个递归的简单例子等你来处理。

#include <stdio.h>
void inverted(int); /*函数声明*/
int main()
{
    int n; /*需要逆序的整数*/
    scanf("%d",&n);
    inverted(n); /*调用逆序函数*/
    return 0;
}

void inverted(int n)
{
    if(n<10) /*当数字只剩一位的时候,即第一位数,输出,变为末位,返回*/
    {
        printf("%d",n);
        return;
    }
    /***************/      

    /***************/   
    return;
}

Input
一个int型整数

Outputt
转换后的整数

Sample Input
1234567
Sample Outputt
7654321
参考解答

2747: 进制转换(十进制转二进制)

Description
输入一个非负整数(十进制),输出此整数对应的二进制数

Input
正整数(十进制)

Outputt
对应的二进制数

Sample Input
6
Sample Outputt
110
参考解答

1942: 进制转换

Description
输入一个十进制数N,将它转换成R进制数输出。

Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。

Outputt
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

Sample Input
7 2
23 12
-4 3
Sample Outputt
111
1B
-11
参考解答

2021: 汉诺塔

Description
汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬了 聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?

Input
输入金片的个数n。这里的n<=10。

Outputt
输出搬动金片的全过程。格式见样例。

Sample Input
2
Sample Outputt
Move disk 1 from A to B
Move disk 2 from A to C
Move disk 1 from B to C
参考解答

1056: (用宏)输出已交换后的两个值

Description
定义一个带参的宏(或者模板函数),带有三个参数,第一个参数为类型,后两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

Input
两个短整型数,空格隔开
两个小数,空格隔开
两个长整数,空格隔开

Outputt
交换后的两个数,空格隔开

Sample Input
1 2
1.5 2.5
65535 2147483647
Sample Outputt
2 1
2.5 1.5
2147483647 65535
参考解答

2970: 利用参数宏进行角度与弧度转换

Description
定义参数宏AngleToRadian(degree,minute,second),将度(degree)、分(minute)、秒(second)转换为弧度。(#define PI 3.14159

#include <stdio.h>
#define PI 3.14159

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

在此补充缺少的代码

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

int main()
{
    double degree,minute,second;
    scanf("%lf %lf %lf",&degree,&minute,&second);
    printf("%f",AngleToRadian(degree,minute,second)); /*参数宏会被替换为定义的表达式,算出结果后输出*/
    return 0;
}

Input
度,分,秒

Outputt
转换后的弧度

Sample Input
180 0 0
Sample Outputt
3.141590
参考解答

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《C语言及程序设计》程序阅读——宏定义
返回:贺老师课程教学链接 写出下面程序的输出结果,并和运行的结果对照。 (1) #include&lt;stdio.h&gt; #define M 3 #define N M+1 #define NN N*N/2 int main() { printf("%d\n", NN); return 0; } (2) #include&lt;stdio
966 0
C语言 —— 指针 ( ※ 入门 ※ )(上)
C语言 —— 指针 ( ※ 入门 ※ )(上)
27 0
C语言 —— 指针 ( ※ 入门 ※ )(中)
C语言 —— 指针 ( ※ 入门 ※ )(中)
28 0
C语言 —— 指针 ( ※ 入门 ※ )(下)
C语言 —— 指针 ( ※ 入门 ※ )(下)
25 0
【C语言进阶】——指针(一) (字符指针,数组指针,指针数组) !! (上)
【C语言进阶】——指针(一) (字符指针,数组指针,指针数组) !! (上)
32 0
C语言入门——指针入门(一)
C语言入门——指针入门(一)
26 0
【C语言】C语言之深入指针进阶(建议收藏以备不时之需)(一)
🗽初阶指针请点击此跳转 https://blog.csdn.net/DerrickWestbrook/article/details/117787490. 指针的主题,在上述链接文章中已经解释过了,我们已经知道了指针的概念: 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节(32位平台/64位平台)。 指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。 在本篇文章将继续讲解质指针的高级主题
29 0
【C语言】C语言之深入指针进阶(建议收藏以备不时之需)(二)
🗽初阶指针请点击此跳转 https://blog.csdn.net/DerrickWestbrook/article/details/117787490. 指针的主题,在上述链接文章中已经解释过了,我们已经知道了指针的概念: 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节(32位平台/64位平台)。 指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。 在本篇文章将继续讲解质指针的高级主题
31 0
【C语言】C语言之深入指针进阶(建议收藏以备不时之需)(三)
🗽初阶指针请点击此跳转 https://blog.csdn.net/DerrickWestbrook/article/details/117787490. 指针的主题,在上述链接文章中已经解释过了,我们已经知道了指针的概念: 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节(32位平台/64位平台)。 指针是有类型的,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。 在本篇文章将继续讲解质指针的高级主题
35 0
+关注
贺利坚
烟台大学计算机学院教师,建设系列学习资源,改革教学方法,为IT菜鸟建跑道,让大一的孩子会编程,为迷茫的大学生出主意,一起追求快乐的大学。 著书《逆袭大学:传给IT学子的正能量》,帮助处于迷茫中的大学
1965
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载