/4、编写递归函数,将输入的以“?”结束的字符串按与输入相反的顺序输出。/
#include <stdio.h>
void sort(){
char ch;
if((ch=getchar())!='?') {sort() ; putchar(ch);}
return;
}
int main(){
sort();
printf("\n");
}
/8、有一个班有4个学生、5门课程。编写两个函数实现如下功能:(1) 求第一门课的平均分;(2) 找出有两门以上课程不及格的学生,输出他们的学号和平均成绩/
#include<stdio.h>
int main(){
float aver(float (*p)[5],int cour);
void fail(float (*p)[5]);
int i,j;
float score[4][5];
for(i=0;i<4;i++){
printf("Please input 5 scores of student No.%d:",i+1);
for(j=0;j<5;j++){
scanf("%f",&score[i][j]);
}
}
printf("\tCour1\tCour2\tCour3\tCour4\tCour5\n");
for(i=0;i<4;i++){
printf("No.%d\t",i+1);
for(j=0;j<5;j++){
printf("%.1f\t",score[i][j]);
}
printf("\n");
}
printf("The average of Course 1 is %.1f .\n",aver(score,0));
fail(score);
return 0;
}
float aver(float (*p)[5],int cour){
int i;
float sum=0;
for(i=0;i<4;i++){
sum=sum+*(*(p+i)+cour);
return sum/4;
}
}
void fail(float (*p)[5]){
int i,j,b;
float sum;
for(i=0;i<4;i++){
b=0;//记住每一次循环都要初始化b=0和sum=0
sum=0;
for(j=0;j<5;j++)
if(*(*(p+i)+j)<60){
b++;
}
if(b>=2){
printf("Student No.%d\t",i+1);
for(j=0;j<5;j++){
printf("%.1f\t",*(*(p+i)+j));
sum=sum+*(*(p+i)+j);
}
printf("average:%.1f\n",sum/5);
}
}
}