//
// main.c
// Ctest6
//
// Created by 王彬 on 2019/5/20.
// Copyright © 2019年 王彬. All rights reserved.
//
//test1
/*
#include
void main()
{
void printstar();
void print_message();
printstar();
print_message();
printstar();
}
void printstar()
{
printf("*******************\n");
}
void print_message()
{
printf("退而采薇,倦勤者也\n");
}
*/
//test2 调用函数时的数据传递
/*
#include
void main()
{
int max(int x , int y);//形参
int a , b , c;
scanf("%d,%d", &a,&b);
c = max(a,b);//实参
printf("Max is %d\n",c);
}
int max(int x ,int y)
{
int z;
z = x > y ? x : y;
return z;
}
*/
//test3
/*
#include
void main()
{
float max(float x,float y);
float a,b;
float c;
scanf("%f%f",&a,&b);
c = max(a,b);
printf("Max is %f\n",c);
}
float max(float x,float y)
{
float z;
z=x>y?x:y;
return z;
}
*/
//test4 实参求值顺序
/*
#include
void main()
{
int f(int a,int b);
int i=2,p;
p=f(i,++i);
printf("%d\n",p);
}
int f(int a,int b)
{
int c;
if(a>b)
{
c=1;
}
else if(a==b)
{
c=0;
}
else
{
c=-1;
}
return(c);
}
*/
//test5 对被调用函数作声明
/*
#include
void main()
{
float add(float a,float b);//对函数进行声明
float a,b,c;
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
}
float add(float a,float b)
{
float sum;
sum=a+b;
return sum;
}
*/
//test6 自行定义pow函数
/*
#include
void main()
{
double power(double a,double b);
double a,b,result;
scanf("%lf,%lf",&a,&b);
result=power(a,b);
printf("the result is %lf:\n",result);
}
double power(double a,double b)
{
double z=1;
while (b)
{
z*=a;
b--;
}
return z;
}
*/
//test7 嵌套函数调用
/*
#include
#include
void main()
{
long int square(long int a);
long int factorial(long int result1);
long int result=0,result1,result2,a,i;
for(i=0;i<2;i++)
{
printf("input a number:\n");
scanf("%ld",&a);
result1=square(a);
result2=factorial(result1);
result=result+result2;
}
printf("计算结果是:%ld\n",result);
}
long int square(long int a)
{
long int z;
z=a*a;
return z;
}
long int factorial(long int result1)
{
long int n;
long int p=1;
for(n=result1;result1>0;result1--)
{
p=p*result1;
}
return p;
}
*/
//test8 用递归的方法计算阶乘
/*
#include
void main()
{
long n;
long result;
long recursion(long n);
printf("input a number:\n");
scanf("%ld",&n);
result=recursion(n);
printf("%ld! = %ld\n",n,result);
}
long recursion(long n)
{
long temp_result;
if(n<0)
{
printf("输入错误\n");
return EOF;
}
else if(n==0)
{
temp_result=1;
}
else
{
temp_result = recursion(n-1)*n;
}
return temp_result;
}
*/
//test9 汉诺塔问题???????????????????????????
#include
int k=0;//统计步数
void Hanoi(int n,char a,char b,char c)
{
if(n==0)//0的话,没什么好玩的了,直接退出!!
{
return ;
}
else
{
Hanoi(n-1,a,c,b);
k++;
printf("%d:From %c to %c\n",k,a,c);
Hanoi(n-1,b,a,c);
}
}
int main()
{
int n;
printf("input a number:\n");
scanf("%d",&n);
Hanoi(n,'A','B','C');
return 0;
}