文章目录
1、函数的嵌套调用:求三个数中最大数和最小数的差值
#include <stdio.h>
#include <stdlib.h>
int max(int *arry)
{
int max=0;
for(int i=0;i<3;i++)
{
if(max < arry[i])
{
max = arry[i];
}
}
printf("max = %d\n",max);
return max;
}
int min(int *arry)
{
int min;
for(int i=0;i<3;i++)
{
if(min > arry[i])
{
min = arry[i];
}
}
printf("min = %d\n",min);
return min;
}
int main()
{
int i,a,b,c;
int arry[3];
int max1,min1;
for(i=0;i<3;i++)
{
printf("Input %d number:",i+1);
scanf("%d",&arry[i]);
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
printf("arry[%d] = %d\n",i,arry[i]);
}
max1 = max(arry);
min1 = min(arry);
printf("max - min = %d\n",max1-min1);
exit(0);
}
2、想求第几项Fibonacci数列的值,就出来第几个值。
#include <stdio.h>
#include <stdlib.h>
int fib(int n)
{
if(n < 0)
return -1;
if(n == 0 || n == 1)
return 1;
return fib(n-1) + fib(n-2);
}
int main()
{
int num;
scanf("%d",&num);
printf("%d\n",fib(num));
exit(0);
}
3、求N的阶乘
#include <stdio.h>
#include <stdlib.h>
long int fac(long int num)
{
if(num<0)
return -1;
if(num ==0 || num ==1)
return 1;
return num*fac(num-1);
}
int main()
{
long int num;
printf("Input num jiecheng:");
scanf("%ld",&num);
printf(" %ld NUM! = %ld\n",num,fac(num));
}
4、3个学生各学4门课,1)计算总平均分,2)只查看某学生的个各门功课成绩
#include <stdio.h>
#include <stdlib.h>
#define M 3
#define N 4
void average(float *q,int n)
{
int i;
float sum=0;
printf("The all student average grade\n");
for(i=0;i<n;i++)
{
sum += q[i];
}
printf("%.2f\n",sum/12);
}
void switch_student(float (*p)[N],int n)
{
int num=0,i;
printf("You want to get who grade\n");
scanf("%d",&num);
num = num -1;
for(i=0;i<N;i++)
{
printf("%.0f ",p[num][i]);
}
}
int main()
{
float grade[M][N] = {{40,34,60,70},{40,59,67,28},{79,20,68,99}};
float* q = *grade;
float (*p)[N] = grade;
average(q,M*N);
switch_student(p,N);
printf("\n");
exit(0);
}
老师的:
#include <stdio.h>
#include <stdlib.h>
// score 3*4
#define M 3
#define N 4
float func_ave(int *p, int n)
{
int i;
float sum = 0;
for(i = 0 ; i < n ; i++)
sum += p[i];
return sum / n;
}
#if 0
int func_find(int (*p)[N],int m,int n)
{
int id,i;
printf("Pease enter the ID[0,2]:");
scanf("%d",&id);
if(id < 0 || id > 2)
return -1;
for(i = 0 ; i < n;i++)
printf("%d ",p[id][i]);
printf("\n");
return 0;
}
#else
int * func_find(int (*p)[N],int m,int n)
{
int id,i;
printf("Pease enter the ID[0,2]:");
scanf("%d",&id);
if(id < 0 || id > 2)
return NULL;
return *(p+id);
}
#endif
int main()
{
int a[M][N] = {{98,78,84,91},{99,78,85,88},{88,89,90,100}};
int *retp;
int i;
printf("AVE = %f\n",func_ave(*a,M*N));
retp = func_find(a,M,N);
if(retp)
{
for(i = 0 ; i < N ;i++)
printf("%d ",retp[i]);
printf("\n");
}
else
{
printf("Can not find.\n");
}
exit(0);
}