微信搜索关注"91考试网"公众号,领30元,获取公务员、事业编、教师等考试资料40G!
10输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。
方法:在主函数中调用一个max_4函数来求4个整数中的最大数。然后在max_4函数中再调用一个max_2函数来求2个整数中的最大数。最后在主函数中输出结果。
#include <stdio.h>
void main()
{
int max_4(int a,int b,int c,int d); /* max_4函数的声明 */
int a,b,c,d,max;
printf("Please enter 4 interger numbers:");
scanf("%d %d %d %d ",&a,&b,&c,&d);
max=max_4(a,b,c,d); /* 调用max_4函数 */
printf("max=%d \n",max);
}
int max_4(int a,int b,int c,int d) /* max_4函数的定义 */
{int max_2(int,int); /* max_2函数的声明 */
int m;
m=max_2(a,b); /* 调用max_2函数 */
m=max_2(m,c); /* 调用max_2函数 */
m=max_2(m,d); /* 调用max_2函数 */
return(m); /* 函数返回值是4个数中的最大者 */
}
int max_2(int a,int b)
{if(a>b)
return a;
else
return b; /* 函数返回值是a和b中的大者 */
} 运行结果:Please enter 4 interger numbers:11 45 –54 0 max=45
11用递归方法求n!
求n!也可以用递归方法,即5!等于4!×5,而4!=3!×4…1!=1。
可用下面的递归公式表示:
n!= 1 (n=0,1)
n·(n-1)! (n>1)
程序如下:
#include <stdio.h>
void main()
{long fac(int n); /* 对fac函数的声明 */
int n;
long y;
printf("input an integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%ld\n",n,y);
}
long fac(int n) /* 定义fac函数 */
{
long f;
if(n<0)
printf("n<0,data error!");
else if(n==0||n==1) 运行结果:Input an integer number:10
f=1; 10!=3628800
else f=fac(n-1)*n;
return(f);
}
12有两个数组a和b,各有10个元素,将它们对应地逐个相比(即a[0]与b[0]比,a[1]与b[1]比……)。如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中相应元素的数目(例如,a[i]>b[i]6次,b[i]>a[i]3次,其中i每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。
void main()
{ int large(int x,int y); /* 函数声明 */
int a[10],b[10],i,n=0,m=0,k=0;
printf(”enter array a:\n”);
for(i=0;i<10;i+ +)
scanf(”%d”,&a[i]);
printf(”\n”);
printf(” enter array b:\n”);
for(i=0;i<10;i+ +)
scanf(”%d”,&b[i]);
printf(”\n”);
for(i=0;i<10;i+ +)
{ if(large (a[i],b[i] )== 1) n=n+1;
else if( large (a[i],b[i] )==0) m=m+1;
else k=k+1;}
printf("a[i]>b[i] %d times\na[i]=b[i] %d
times\na[i]<b[i] %d times\n",n,m,k);
if(n>k) printf("array a is larger than array b\n");
else if (n<k) printf("array a is smaller than array b\n");
else printf("array a is equal to array b\n");
}
large(int x,int y)
{ int flag;
if(x>y)flag=1;
else if(x<y)flag=-1;
else flag=0;
return(flag);
}
运行情况如下:
enter array a: 1 3 5 7 9 8 6 4 2 0
enter array b:5 3 8 9 –1 –3 5 6 0 4
a[i]>b[i] 4 times
a[i]=b[i] 1 times
a[i]<b[i] 5 times
array a is smaller thann array b