二、函数
一个C程序有且只有一个主函数,即main函数。
- C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。
- 而main前面的int就是主函数的类型.
- printf()是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息
- return是函数的返回值,根据函数类型的不同,返回的值也是不同的。
- \n是转义字符中的换行符。(注意:C程序一定是从主函数开始执行的)
1、有三座塔,ABC,开始时A上有n 个盘子,大小不等,大在上,小在下,要将盘子从A移到C座,每此只能移一个,输入盘子的数量,输出移动的步骤,利用递归完成?
#include "stdio.h"
int move(char x,char y){
printf("%c to %c\n", x, y);
}int hanoi(int n,char a,char b,char c){
if(n==1) move(a,c);
else
{
hanoi(n-1,a,c,b);
move(a,c);
hanoi(n-1,b,a,c);
}
return 0;
}
int main(){int n,count;
scanf("%d", &n);
count=hanoi(n,'A','B','C');
return 0;
}
2、求取斐波那契数列的第n项?
#include <stdio.h>int fibo(int t){
if(t==1) return 0;
else if(t==2) return 1;
else return fibo(t-1)+fibo(t-2);
}int main(){
int n,s;
scanf("%d", &n);
s=fibo(n);
printf("%d", s);
return 0;
}
3、利用递归函数求n!
#include <stdio.h>
int fun(int n){
if(n<0) return 0;
else if(n==0||n==1)
return 1;
else return (n*fun(n-1));
}
int main({
int n;
scanf("%d", &n);
printf("%d", fun(n));
return 0;
}
4、输入正整数,转化为二进制输出
#include<stdio.h>
void dectobin(int n);int main(){
int n;
scanf("%d",&n);
dectobin(n);
return 0;
void dectobin(int n)
{
int i=0,a[32];
while(n>0)
{
a[i]=n%2;
i++;
n=n/2;
}
for(i--;i>=0;i--)
printf("%d",a[i]);
}
5、返回number逆序数
#include<stdio.h>int reverse(int n)
{
int i,m=0;
while(n/10!=0)
{
i=n%10;
n=n/10; m=m*10+i;
}
if(n!=0)
{
m=m*10+n;
}
return m;
}int main(){
int n;
scanf("%d",&n);
printf("%d",reverse(n));
return 0;
}
6、给定俩个正整数m,n,求最小公约数
#include "stdio.h"
int fun(int m,int n)
{
int r;
if(m==n) return m;
else
while((r=m%n)!=0)
{
m=n;
n=r;
}
return n;
}
int main()
{
int m,n,i;
scanf("%d %d",&m,&n);
i=fun(m,n);
printf("%d",i);
return 0;
}