实例:求字符串中字符的个数
输入一个字符串,要求使用函数调用的方法计算出该字符串共含有多少个字符。
代码:
#include<stdio.h>
int main()
{
int length(char str[]);
char str[100];
gets(str);
printf("%d",length(str));
return 0;
}
int length(char str[])
{
int i=0;
while(str[i]!='\0')
i++;
return i;
}
实例:递归解决年龄问题
有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁。问第2个人,说比第1个人大2岁。
最后问第1个人,他说是10岁。编写程序当输入第几个人时求出其对应年龄。
代码:
#include<stdio.h>
int main()
{
int age(int i);
int i;
scanf("%d",&i);
printf("%d",age(i));
return 0;
}
int age(int i)
{
int n;
if(i==1)
n=10;
else
n=age(i-1)+2;
return n;
}
实例:求学生的平均身高
输入学生数并逐个输入学生的身高,输出身高的平均值。
代码:
#include<stdio.h>
int main()
{
float avgHeight(float a[],int n);
int n;
scanf("%d",&n);
float height[100];
int i;
for(i=0;i<n;i++)
scanf("%f",&height[i]);
printf("%.2f",avgHeight(height,n));
return 0;
}
float avgHeight(float a[],int n)
{
int i;
float sum=0;
for(i=0;i<n;i++)
sum+=a[i];
return (sum/n);
}
实例:分数计算器程序
在实际应用中有很多时候我们希望计算机给出的结果是分数而不是小数,本程序就是在这个前提下产生的,具体要求如下:如果用户输入形式是1,2,+,1,3则代表1/2+1/3,要求运算结果以分数的形式体现。
代码:
#include<stdio.h>
int main()
{
int gys(int x,int y);
int gbs(int x,int y);
void yuefen(int x,int y);
void add(int a1,int a2,int b1,int b2);
void sub(int a1,int a2,int b1,int b2);
void mul(int a1,int a2,int b1,int b2);
void div(int a1,int a2,int b1,int b2);
int a1,a2,b1,b2;
char c;
scanf("%d,%d,%c,%d,%d",&a1,&a2,&c,&b1,&b2);
switch(c)
{
case '+':add(a1,a2,b1,b2);break;
case '-':sub(a1,a2,b1,b2);break;
case '*':mul(a1,a2,b1,b2);break;
case '/':div(a1,a2,b1,b2);break;
}
return 0;
}
int gys(int x,int y)//最大公约数
{
return y?gys(y,x%y):x;
}
int gbs(int x,int y)//最小公倍数
{
return x/gys(x,y)*y;
}
void yuefen(int x,int y)//约分
{
int s=gys(x,y);
x/=s;
y/=s;
printf("%d/%d",x,y);
}
void add(int a1,int a2,int b1,int b2)
{
int s=gbs(a2,b2);
int s1=s/a2,s2=s/b2;
a1*=s1,b1*=s2;
int x=a1+b1;
int y=s;
yuefen(x,y);
}
void sub(int a1,int a2,int b1,int b2)
{
int s=gbs(a2,b2);
int s1=s/a2,s2=s/b2;
a1*=s1,b1*=s2;
int x=a1-b1;
int y=s;
yuefen(x,y);
}
void mul(int a1,int a2,int b1,int b2)
{
int x=a1*b1;
int y=a2*b2;
yuefen(x,y);
}
void div(int a1,int a2,int b1,int b2)
{
int x=a1*b2;
int y=a2*b1;
yuefen(x,y);
}