任务一
源代码:
# include<stdio.h> char score_to_grade(int score); int main() { int score; char grade; while(scanf("%d",&score)!=EOF) { grade=score_to_grade(score); printf("分数:%d,等级:%c\n",score,grade) ; } return 0; } char score_to_grade(int score) { char ans; switch(score/10){ case 10: case 9: ans='A'; break; case 8: ans='B'; break; case 7: ans='C'; break; case 6: ans='D'; break; default: ans='E'; } return ans; }
问题一:
功能:将分数转化为相应的等级 形参:整型 返回值:字符型
问题二:
有问题,会无论输入什么数都会输出ABCDE,缺少了break的停止
任务二
源代码:
# include<stdio.h> int sum_dights(int n); int main() { int n; int ans; while(printf("Enter n:"),scanf("%d",&n)!=EOF) { ans=sum_dights(n); printf("n=%d,ans=%d\n\n",n,ans); } return 0; } int sum_dights(int n) { int ans=0; while(n!=0) { ans+=n%10; n=n/10; } return ans; }
问题一:
求每个数位上的数和
问题二:
能实现同等效果,一个为迭代一个为递归
任务三
源代码:
#include<stdio.h> int power(int x,int n);//函数声明 int main(){ int x,n; int ans; while(printf("Enterxandn:"),scanf("%d%d",&x,&n)!=EOF){ ans=power(x,n);//函数调用 printf ("n=%d,ans=%d\n\n",n,ans); } return 0; } //函数定义 int power(int x,int n){ int t; if(n==0) return 1; else if(n%2) return x*power(x,n-1); else{ t=power(x,n/2); return t*t; } }
问题一:
求x的n次方
问题二:
为递归函数
任务四
源代码:
# include<stdio.h> int is_prime(int); int main() { int i,cnt=0; for(i=1;i<=98;i++) { if(is_prime(i)&&is_prime(i+2)) { printf("%d %d\n",i,i+2); cnt++; } } printf("100以内的孪生素数共有:%d",cnt); return 0; } int is_prime(int n) { int m,ans; for(m=2;m<=n/2;m++) { if(n%m==0) { ans=0; break; } else ans=1; } return ans; }
运行结果:
任务五
源代码:
# include<stdio.h> # include<stdlib.h> int cnt=0; void hanoi(unsigned int n,char from,char temp,char to); void move_plate(unsigned int n,char from,char to); int main() { unsigned int n; while(scanf("%u",&n)!=EOF) { cnt=0; hanoi(n,'A','B','C'); printf("\n一共移动了%d次\n",cnt); } system ("pause"); return 0; } void hanoi(unsigned int n,char from,char temp,char to) { if(n==1) { move_plate(n,from,to); } else { hanoi(n-1,from,to,temp); move_plate(n,from,to); hanoi(n-1,temp,from,to); } } void move_plate(unsigned int n,char from,char to) { printf("%u:%c-->%c\n",n,from,to); cnt++; }
运行结果:
任务六
源代码1:
# 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 jc(int x) { int i,p=1; for(i=1;i<=x;i++) p*=i; return p; } int func(int n,int m) { int ans; ans=jc(n)/jc(m)/jc(n-m); return ans; }
运行结果:
源代码2:
# 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) { if(m==0||m==n) return 1; else return func(n-1,m)+func(n-1,m-1); }
运行结果:
任务七
源代码:
#include <stdio.h> #include <stdlib.h> char print_charman(int n); int main() { int n; printf("Enter n: "); scanf("%d", &n); print_charman(n); return 0; } char print_charman(int n) { int i,j1,j2,j3,j4,m,p; p=n; for(i=1;i<=p;i++) { for(j4=1;j4<=p-n;j4++) printf(" "); for(j1=1;j1<=(2*n-1);j1++) printf(" O "); printf("\n"); for(j4=1;j4<=p-n;j4++) printf(" "); for(j2=1;j2<=(2*n-1);j2++) printf("<H> "); printf("\n"); for(j4=1;j4<=p-n;j4++) printf(" "); for(j3=1;j3<=(2*n-1);j3++) printf("I I "); printf("\n"); n--; } }
输出结果:
标签:return,int,ans,char,实验,printf,include From: https://www.cnblogs.com/hshnbnb666/p/18499544