实验三
task1
score_to_grade作用:将输入的分数进行分等级输出
形参类型:整形
返回值类型:字符串
如果改变函数定义,去掉line21-line28的break,程序将在每一此输入数值后继续进行输出,不能及时跳出switch
task2
sum_digits的作用:将输入数据的每位上的数字加起来输出
改变之后依然能够实现,是通过递归的方式进行输出,第一种为嵌套。
task3
power的功能为计算一个数x的n次方
并且是递归函数
输入x,n:
n == 0时,输出1
n 为奇数时,(n-1)/2-1直至n==0
n为偶数时,(n/2)-1直至n==0
task4
#include<stdio.h> int is_prime(int n); //函数声明 int main(){ int num=0,x; printf("100以内的孪生素数:\n"); for(x=2;x<100;++x) if(is_prime(x)&&is_prime(x+2)) { printf("%d %d\n",x,x+2); num += 1; } //函数调用 printf("100以内的孪生素数共有:%d个",num); return 0; } int is_prime(int n) //函数定义 { int m; if(n==2) return 1; for(m=2;m<n;++m){ if(n%m==0) return 0; } return 1; }
task5
#include<stdio.h> #include<stdlib.h> void hanoi(unsigned int n,char from,char temp,char to); //函数声明 void moveplate(unsigned int n,char from,char to); int i=0; int main(){ unsigned int n; while(scanf("%u",&n)!=EOF) { hanoi(n,'A','B','C'); printf("一共移动了%d次",i); i=0; } //函数调用 return 0; } void hanoi(unsigned int n,char from,char temp,char to){ //函数定义 if (n==1) moveplate(n,from,to); else { hanoi(n-1,from,to,temp); moveplate(n,from,to); hanoi(n-1,temp,from,to); } } void moveplate(unsigned int n,char from,char to) { printf("%u:%c-->%c\n",n,from,to); ++i; }
task6
#include <stdio.h> int func(int n, int m); // 函数声明 int main() { int n, m; int ans; while(scanf("%d%d", &n, &m) != EOF) { ans = func(n, m); // 函数调用 printf("n = %d, m = %d, ans = %d\n\n", n, m, ans); } return 0; } int func(int n,int m) // 函数定义 { int i,j,k,ans,a=1,b=1,c=1; if (m==0) return 1; else{ for(i=n;i>=1;--i) a*=i; for(j=m;j>=1;--j) b*=j; for(k=n-m;k>=1;--k) c*=k; return a/(b*c); } }
#include <stdio.h> int func(int n,int m); int main(){ int n,m; int ans; while(scanf("%d%d",&n,&m)!=EOF){ ans=func(n,m); printf("n=%d,m=%d,ans=%d\n\n",n,m,ans); } return 0; } int func(int n,int m){ int ans; if(n<m) return 0; if((m==0)||(m==n)) return 1; ans=func(n-1,m)+func(n-1,m-1); return ans; }
task7
printf("Enter n: "); scanf("%d", &n); print_charman(n); // 函数调用 return 0; } void print_charman(int n) // 函数print_charman定义 { int i,j,k; for(i=n;i>0;i--){ for(k=1;k<=n-i;k++){ printf(" \t"); } j=2*i-1; for(j;j>0;j--){ printf(" O \t"); } printf("\n"); for(k=1;k<=n-i;k++){ printf(" \t"); } j=2*i-1; for(j;j>0;j--){ printf("<H>\t"); } printf("\n"); for(k=1;k<=n-i;k++){ printf(" \t"); } j=2*i-1; for(j;j>0;j--){ printf("I I\t"); } printf("\n"); } }