本文的编写是为了在学习c++的时候加深自己的记忆,同时也为与我一般的初学者提供一些参考,此处特别感谢微信公众号“c/c++的编程
教室”,我的学习过程按照公众号的推送进行学习的!
1.首先说一下main()函数,main()函数有两种类型,一个是不返回数值的void main(){......},一个是返回值为0的int main(){......return 0;}。
2.关于函数,无非就是是否有返回值,有返回值的返回值类型,以及输入参数及其类型。函数的调用分为两种情况,第一种就是在main()函数之前定义,这种情况不用声明,可以直接在后面的main()函数或者其他函数中调用,总结就是被调用函数在调用函数之前定义就可以不声明;第二种就是被调用函数在调用函数后面定义,则需要在main函数前面进行声明,并且在后面进行定义。
3.递归函数,递归函数是一个比较经典的函数,在解决某些问题的时候很有用处,此处暂给出例子.
(1)关于简单的递归练习和斐波纳契列
#include<stdio.h> #include<stdlib.h> void test(int n);//函数声明,无返回值类型void int Fibonacci(int n);//函数声明,int型返回类型 int main() { test(1);//无返回值的调用 int f=0; f = Fibonacci(6);//有返回值的调用 printf("f=%d\n",f); system("PAUSE"); return 0; } //递归练习,定义 void test(int n) { printf("第 %d : %d\n", n, n); if (n < 4) test(n + 1); printf("第第 %d : %d\n", n, n); } //斐波纳契列,定义 int Fibonacci(int n) { if (n > 2) return Fibonacci(n - 1) + Fibonacci(n - 2); else return 1; }
(2)十进制转任何进制的递归
#include <stdio.h> #include <stdlib.h> void to_anyscale(unsigned long n, int m) { int r; r = n % m; if (n >= m) to_anyscale(n / m, m); if (r<10) putchar('0' + r); else putchar(r - 10 + 'A'); } int main() { unsigned long src; int scale; printf("请输入需要转换的十进制数:\n"); while (scanf_s("%d", &src)) { printf("请输入需要转换的进制数:\n"); scanf_s("%d", &scale); to_anyscale(src, scale); printf("若要继续,请输入另一个数,若要退出,请输入q或者Q:\n"); } return 0; }