任务1
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> #define N 80 void print_text(int line,int col,char text[]); void print_spaces(int n); void print_blank_lines(int n); int main(){ int line,col,i; char text[N] = "hi, April~"; srand(time(0)); for(i = 1;i <= 10;++i);{ line = rand() %25; col = rand() %80; print_text(line,col,text); Sleep(1000); } return 0; } void print_spaces(int n){ int i; for(i = 1;i <= n;++i) printf(" "); } void print_blank_lines(int n){ int i; for(i = 1;i <= n;++i) printf("\n"); } void print_text(int line,int col,char text[]){ print_blank_lines(line-1); print_spaces(col-1); printf("%s",text); }
功能:输入十个“hi,April”,间隔1秒
任务二
2.1
#include<stdio.h> long long fac(int n); int main(){ int i, n; printf("Enter n"); scanf("%d",&n); for(i = 1;i <= n;++i) printf("%d! = %11d\n",i,fac(i)); return 0; } long long fac(int n){ static long long p = 1; p = p * n; return p; }
2.2
#include<stdio.h> int func(int, int); int main(){ int k = 4,m = 1,p1, p2; p1 = func(k, m); p2 = func(k, m); printf("%d, %d\n",p1, p2); return 0; } int func(int a, int b){ static int m = 0,i = 2; i += m + 1; m = i + a + b; return m; }
static特性:再次调用时保留上次函数运行结束时的值
任务三
#include <stdio.h> long long func(int n); int main(){ int n; long long f; while(scanf("%d",&n) != EOF){ f = func(n); printf("n = %d,f = %lld\n",n,f); } return 0; } long long func(int n) { long long a,b; if(n == 0) { a = 0; }else{ b = 2*func(n-1)+1; a = b; } return a; }
实验任务四
#include <stdio.h> int func(int n, int m); int main() { int n, m; while(scanf("%d%d", &n, &m) != EOF) printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m)); return 0; } int func(int n,int m){ int C; if(m==0||m==n) C=1; else if(m>n) C=0; else C=func(n-1,m)+func(n-1,m-1); return C; }
实验任务五
5.1
#include <stdio.h> double mypow(int x,int y); int main(){ int x, y; double ans; while(scanf("%d%d",&x,&y)!=EOF){ ans=mypow(x,y); printf("%d的%d次方:%g\n\n",x,y,ans); } return 0; } double mypow(int x,int y){ if(y==0){ return 1; } else if(y>0){ return (double)x*mypow(x,y-1); } else if(y<0) { return (mypow(x,y+1)/x); } }
5.2
#include <stdio.h> double mypow(int x,int y); int main(){ int x, y; double ans; while(scanf("%d%d",&x,&y)!=EOF){ ans=mypow(x,y); printf("%d的%d次方:%g\n\n",x,y,ans); } return 0; } double mypow(int x,int y){ double s=1; while(y>0){ s=s*x; y=y-1; } while(y<0){ s=s/x; y=y+1; } return s; }
实验任务六
#include<stdio.h> #include<math.h> void hanoi(unsigned int n,char from,char temp,char to);//递归函数声明 void moveplate(unsigned int n,char from,char to); int main() { unsigned int n,i; while(scanf("%u",&n) != EOF) { hanoi(n,'A','B','C'); i=pow(2,n)-1; printf("\n一共移动了:%d次\n",i); } 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); }
实验任务7
#include <stdio.h> #include <math.h> int is_prime(int n); int main() { int i, k, a[15], j = 0, l; for (k = 2; k <= 20; k++) { if (is_prime(k)) a[j++] = k; } for (i = 2; i <= 10; i++) { for (l = 1; l <= 10; l++) { if (is_prime(2 * i - a[l - 1])) { printf("%d = %d + %d\n", (2 * i), a[l - 1], (2 * i - a[l - 1])); break; } } } return 0; } int is_prime(int n) { int i, flag = 1; for (i = 2; i <= sqrt(n); i++) { if (n % i == 0) { flag = 0; break; } } return flag; }
实验任务八
#include<stdio.h> #include<math.h> long func(long s); int main(){ long s,t; printf("Enter a number:"); while(scanf("%ld",&s)!=EOF){ t=func(s); printf("nem number is: %ld\n\n",t); printf("Enter a number:"); } return 0; } long func(long s){ long b=0,t=0; int a,m; while(s!=0){ a=s%10; if(a%2!=0) b=10*b+a; s=s/10; } while(b!=0){ m=b%10; t=10*t+m; b=b/10; } return t; }
标签:return,int,long,char,实验,func,include From: https://www.cnblogs.com/xsh123456/p/17273714.html