1、将一整数逆序后放入一数组中(要求递归实现)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
void reverse(int x, int *result){
if(x>=10)
reverse(x/10,result+1);
*result = x%10;
}
int main(){
int x = 12345678;
int *result = (int*)malloc(sizeof(int)*20);
reverse(x,result);
for(int i = 0; i<9;i++)
printf("%d", result[i]);
}
注意指针数组传到函数的时候,退化成指针,不可能计算出数组长度!!!传长度~~
2.求高于平均分的学生学号及成绩(递归)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
double avg(int totalScore, int n)
{
int number;
double score, average;
scanf("%d",&number);
if(0 != number)
{
scanf("%lf",&score);
average = avg(totalScore+score, n+1);
if(score > average)
printf("number:%d, score: %lf\n",number,score);
return average;
}
else
{
average = totalScore/n;
printf("average:%lf\n",average);
return average;
}
}
int main()
{
avg(0,0);
return 0;
}