#include<stdio.h>
#if 0
void main()
{
int age(int n);//函数声明
age(6);//函数调用
int age(int n)//函数定义
{
int c; //变量 存放返回值
if(n == 1)//终止条件
c = 10;
else
c = age(n-1)+2;//调用函数本身 递归
printf("第%d个人的年龄是 :%d/n",n,c);
return c;
}
#endif
//********************************
#if 0
void main()
{
int fac(int n);
int n;
scanf("%d",&n);
printf("%d/n",fac(n));
}
int fac(int n)
{
int f;
if(n < 0){
printf("n < 0 is a dataerror !/n");
exit(0);
}
else if(n == 0 || n == 1)
f = 1;
else
f = fac(n - 1)*n;
return f;
}
#endif
//********************************
#if 0
void main()
{
void hanoi(int n,char c1,char c2,char c3);//声明
int n;
printf("Please input the number of disks :");
scanf("%d",&n);
hanoi(n,'A','B','C');
}
void hanoi(int n,char c1,char c2,char c3)
{
void move(char c1,char c2);//声明
if(n == 1)
move(c1,c3);
else
{
hanoi(n-1,c1,c3,c2);//将c1上的n-1个盘子移到c2上 借助于c3
move(c1,c3);// 将第n个从c1 到 c2
hanoi(n-1,c2,c1,c3);//将c2上的n-1个盘子通过c1移到c3上 这样就放完了
}
}
void move(char c1,char c2)
{
printf("%c--->%c/n",c1,c2);
}
#endif
//********************************
#if 0
#define N 50
void main()
{
int compare(int a,int b);
int a[N],b[N];
int n;
int i;
int equal = 0,more_than = 0,less_than = 0;
printf("请输入数组中元素的个数:");
scanf("%d",&n);
printf("请输入数组a:/n");
for(i = 0;i< n;i++)
scanf("%d",&a[i]);
printf("请输入数组b:/n");
for(i = 0;i< n;i++)
scanf("%d",&b[i]);
for(i = 0;i< n;i++)
{
if(compare(a[i],b[i]) == 1)
more_than++;
else if(compare(a[i],b[i]) == 0)
equal++;
else
less_than++;
}
printf("等于的次数%d/n大于的次数%d/n小于的次数%d/n",equal,more_than,less_than);
}
int compare(int a,int b)
{
if(a > b)
return 1;
else if(a == b)
return 0;
else
return -1;
}
#endif
//********************************
#if 0
void main()
{
int compare(int a,int b);
int a[N],b[N];
int n;
int i;
int equal = 0,more_than = 0,less_than = 0;
printf("请输入数组中元素的个数:");
scanf("%d",&n);
printf("请输入数组a:/n");
for(i = 0;i< n;i++)
scanf("%d",&a[i]);
printf("请输入数组b:/n");
for(i = 0;i< n;i++)
scanf("%d",&b[i]);
for(i = 0;i< n;i++)
{
if(compare(a[i],b[i]) == 1)
more_than++;
else if(compare(a[i],b[i]) == 0)
equal++;
else
less_than++;
}
printf("等于的次数%d/n大于的次数%d/n小于的次数%d/n",equal,more_than,less_than);
}
int compare(int a,int b)
{
if(a > b)
return 1;
else if(a == b)
return 0;
else
return -1;
}
#endif
//********************************
#if 0
void main()
{
float average(float score[10]);
float score[10];
float ave;
int i;
printf("Please input the score :/n");
for(i = 0;i < 10;i++)
scanf("%f",&score[i]);
ave = average(score);
printf("The average score is : %.4f/n",ave);
}
float average(float score[10])
{
float sum = 0;
int i;
for(i = 0;i<10;i++)
sum += score[i];
return sum/10;
}
#endif
//********************************
#if 0
void main()
{
float average(float score[],int n);
float score[10];
int n;
float ave;
int i;
printf("Please input the number of score :");
scanf("%d",&n);
printf("Please input the score :/n");
for(i = 0;i < n;i++)
scanf("%f",&score[i]);
ave = average(score,n);
printf("The average score is : %.4f/n",ave);
}
float average(float score[],int n)
{
float sum = 0;
int i;
for(i = 0;i<n;i++)
sum += score[i];
return sum/10;
}
#endif
//********************************
#if 0
void main()
{
void average(float score[],int n);
float score[10];
int n;
int i;
printf("Please input the number of score :");
scanf("%d",&n);
printf("Please input the score :/n");
for(i = 0;i < n;i++)
scanf("%f",&score[i]);
average(score,n);
for(i = 0;i < n;i++)
printf("%f",score[i]);
printf("/n");
}
void average(float score[],int n)
{
int i;
for(i = 0;i<n;i++)
score[i] += 1;
}//形参和实参地址一样 所以形参改变 实参的值也会改变
#endif
//********************************
#if 0
#define N 30
//选择法排序 从小到大
void main()
{
void sort(int array[],int n);
int array[N];
int n,i;
printf("Please input the count of number :");
scanf("%d",&n);
printf("Please input the array :/n");
for(i = 0;i < n;i++)
scanf("%d",&array[i]);
sort(array,n);
for(i = 0;i < n;i++)
printf("%d ",array[i]);
printf("/n");
}
void sort(int array[],int n)
{
int i,j;
int temp;
for(i = 0;i<n-1;i++)
{
for(j = i+1;j<n;j++)
{
if(array[i] > array[j])//选择出最小的交换 放在第一位
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
#endif
//*****************************
#if 0
#define N 30
//冒泡排序 从小到大
void main()
{
void sort(int array[],int n);
int array[N];
int n,i;
printf("Please input the count of number :");
scanf("%d",&n);
printf("Please input the array :/n");
for(i = 0;i < n;i++)
scanf("%d",&array[i]);
sort(array,n);
for(i = 0;i < n;i++)
printf("%d ",array[i]);
printf("/n");
}
void sort(int array[],int n)
{
int i,j;
int temp;
for(i = 0;i<n-1;i++)
{
for(j = 0;j<n-1-i;j++)//大数下沉
{
if(array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
#endif
#if 0
void main()
{
int max_value(int array[][4]);//声明
int array[3][4] = {{1,3,5,7},{2,4,6,8},{15,17,34,12}};
int max;
max = max_value(array);//调用
printf("%d/n",max);
}
int max_value(int array[][4])//定义
{
int i,j;
int max;
max = array[0][0];
for(i = 0;i<3;i++)
for(j = 0;j<4;j++)
if(array[i][j] > max)//求最大值
max = array[i][j];
return max;
}//多为数组作为参数 形参定义时第一维的大小可以省略,其他高维则不可以 否则会出错
#endif
//*********************************
#if 0
float Max = 0,Min = 0;
void main()
{
float average(float array[],int n);
float score[10];
int n;
int i;
float ave;
printf("Please input the number of score :");
scanf("%d",&n);
printf("Please input the score :/n");
for(i = 0;i < n;i++)
scanf("%f",&score[i]);
ave = average(score,n);
printf("Max = %.2f,Min = %.2f,ave = %.2f/n",Max,Min,ave);
}
float average(float array[],int n)
{
int i;
float sum = 0;
Max = Min = array[0];
for(i = 0;i<n;i++)
{
if(Max < array[i])
Max = array[i];
if(Min > array[i])
Min = array[i];
sum += array[i];
}
return sum/n;
}//Max Min 是全局变量 可以应用于整个源文件 首字母大写
#endif