#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define N 80 void printf_text(int line,int col,char text[]); void printf_spaces(int n); void printf_blanks(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()%25; printf_text(line,col,text);//text 后不加[]. Sleep(1000); } return 0; } void printf_spaces(int n) { int i; for(i=1;i<=n;i++) printf(" "); } void printf_blanks(int n) { int i; for(i=1;i<=n;i++) printf("\n"); } void printf_text(int line,int col, char text[]) { printf_blanks(line-1); printf_spaces(col-1); printf("%s",text); }
随机生成打印的空行数和空格数,打印空行和空格后输出字符串。
#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! =%lld\n",i,fac(i)); } return 0; } long long fac(int n) { static long long p=1; printf("p=%lld\n",p); p=p*n; return p; }
#include <stdio.h> int fun(int,int); int main() { int k=4,m=1,p1,p2; p1=fun(k,m); p2=fun(k,m); printf("%d,%d",p1,p2); return 0; } int fun(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); 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) { if(n==1) return 1; else return (2*func(n-1)+1); }
#include <stdio.h> int func(int m,int n); 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) { if(n<m) return 0; else if(n==m||m==0) return 1; else return (func(n-1,m)+func(n-1,m-1)); }
#include <stdio.h> double mypow(int x,int y); int main() { int x,y; printf("Enter x and y:"); while(scanf("%d%d",&x,&y)!=EOF) { printf("x=%d,y=%d,ans=%g\n",x,y,mypow(x,y)); } return 0; } double mypow(int x,int y) { if(y==0) return 1; else if(y>0) return x*mypow(x,y-1); else return 1.0/x*mypow(x,y+1); }
#include <stdio.h> double mypow(int x,int y); int main() { int x,y; printf("Enter x and y:"); while(scanf("%d%d",&x,&y)!=EOF) { printf("x=%d,y=%d,ans=%g\n",x,y,mypow(x,y)); } return 0; } double mypow(int x,int y) { double p=1; if(y>=0) { for(;y>0;y--) p=p*x; return p; } if(y<0) { for(;y<0;y++) p=p*x; return 1.0/p; } }
#include <stdio.h> #include <stdlib.h> int count; void hannoi(int,char,char,char); void moveplate(int,char,char); int main() { int n; while(scanf("%d",&n)!=EOF) { count=0; hannoi(n,'A','B','C'); printf("一共移动了%d次\n",count); } return 0; } void hannoi(int n,char from,char temp,char to) { if(n==1) moveplate(1,from,to); else { hannoi(n-1,from,to,temp); moveplate(n,from,to); hannoi(n-1,temp,from,to); } } void moveplate(int nth,char a,char b) { count++; printf("%d:%c-->%c\n",nth,a,b); }
#include <stdio.h> #include <stdlib.h> #include <math.h> int is_prime(int); int main() { int i,j,n1,n2; for(i=1;i<=20;i++) { if(!(i%2)&&i>=4) { for(j=1;j<i;j++) { if(is_prime(j)) { if(is_prime(i-j)) { n1=j; n2=i-j; } } } printf("%d=%d+%d\n",i,n1,n2); } } return 0; } int is_prime(int n) { int i; for(i=2;i<=sqrt(1.0*n);i++) { if(n%i==0) { return 0; break; } } if(n>1&&i>sqrt(1.0*n)) return 1; else return 0; }
#include <stdio.h> #include <math.h> long func(long); int main() { long s,t; printf("Enter a number:"); while(scanf("%ld",&s)!=EOF) { t=func(s); printf("new number is:%d\n",t); printf("Enter a number:"); } return 0; } long func(long n) { int k,i=0,temp;//用来保存位数 long p=0; do { k=n%10; n=n/10; if(k%2) { temp=pow(10,i); p=p+k*temp; i++; } }while(n>0); return p; }
实验总结:
具体知识点包括:函数的调用,变量的类型,static变量,全局变量,函数的迭代和递归的编写。
标签:return,int,long,char,实验,printf,include From: https://www.cnblogs.com/xjx123/p/17275755.html