今天上午还是要好好复习下函数的递归调用,这一直是我的硬伤,对于有些还是需要加强,下面再写一个例子,
总结一下,对于递归调用主要的是还是要学会方法,一般的格式
首先有方法的调用,在调用的方法里面,记得一定要传递参数,参数传递的时候注意参数的类型,值,还有最主要的的是算法还有边界,递归的核心是循环调用自己。
递归实现输入二进制输出十进制 ==============
#include <stdio.h>
int get(int num);
main()
{
int num;
printf("请输入二进制数:");
scanf_s("%d", &num);
getchar();
printf("对应的十进制数是:%d\n", get(num));
getchar();
return(0);
}
int get(int num)
{
if (num / 10 == 0)
return 1;
else
return get(num / 10) * 2 + num % 10;
}
二进制的位数
#include <stdio.h>
int get(int num);
void main()
{
int num, n, i, count = 1;
scanf_s("%d,", &num);
getchar();
if (count == 1)
printf("转换成二进制后的长度是\n");
count++;
printf("%d,", get(num));
getchar();
}
int get(int num)
{
if (num<2)
return 1;
else
return get(num / 2) + 1;
}
加汽油的相关题
#include<stdio.h>
#include<math.h>
void main() {
float p, q, x, pay;
char y, z;
printf("请输入汽油品种(y),服务类型(z),加油量(x)\n");
scanf_s("%c,%c,%f", &y, &z, &x);
switch (y) {
case'a':p = 6.92; break;
case'b':p = 7.37; break;
case'c':p = 7.64; break; }
switch (z)
{
case'f':q = 1; break;
case'm':q = 0.95; break;
case'e':q = 0.9; break; }
pay = p*q*x;
printf("pay=%.2f\n", pay);
}