1. 实验任务1
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<windows.h> 5 #define N 80 6 7 void print_text(int line,int col,char text[]); 8 void print_spaces(int n); 9 void print_blank_lines(int n);//函数声明 10 11 int main() 12 { 13 int line,col,i; 14 char text[N]="hi,April~"; 15 16 srand(time(0));//以当前系统时间作为随机种子 17 18 for(i=1;i<=10;++i) 19 { 20 line=rand()%25; 21 col=rand()%80; 22 print_text(line,col,text); 23 Sleep(1000);//暂停1000ms 24 } 25 system("pause"); 26 return 0; 27 } 28 // 打印n个空格 29 void print_spaces(int n) { 30 int i; 31 32 for(i = 1; i <= n; ++i) 33 printf(" "); 34 } 35 36 // 打印n行空白行 37 void print_blank_lines(int n) { 38 int i; 39 40 for(i = 1; i <= n; ++i) 41 printf("\n"); 42 } 43 44 // 在第line行第col列打印一段文本 45 void print_text(int line, int col, char text[]) { 46 print_blank_lines(line-1); // 打印(line-1)行空行 47 print_spaces(col-1); // 打印(col-1)列空格 48 printf("%s", text); // 在第line行、col列输出text中字符串 49 } 50 //功能:随机在第m行第n列打印输出一段文字(0<m<24,0<n<79),输完一次,暂停1秒,循环10次
功能:随机在第m行第n列打印输出一段文字(0<m<24,0<n<79),输完一次,暂停1秒,循环10次
2. 实验任务2
task2_1.c
1 #include<stdio.h> 2 #include<stdlib.h> 3 long long fac(int n); 4 5 int main() 6 { 7 int i,n; 8 9 printf("Enter n:"); 10 scanf("%d",&n); 11 12 for(i=1;i<=n;++i) 13 printf("%d! = %lld\n",i,fac(i)); 14 15 system("pause"); 16 return 0; 17 } 18 long long fac(int n) 19 { 20 static long long p=1;//静态局部变量:保留上次结果 21 printf("p=%lld\n",p); 22 p=p*n; 23 24 return p; 25 }
增加一行代码:printf("p = %lld\n", p);
task2_2.c
1 #include<stdio.h> 2 #include<stdlib.h> 3 int func(int ,int ); 4 5 int main() 6 { 7 int k=4,m=1,p1,p2; 8 9 p1=func(k,m); 10 p2=func(k,m); 11 printf("%d,%d\n",p1,p2); 12 13 system("pause"); 14 return 0; 15 } 16 int func(int a,int b) 17 { 18 static int m=0,i=2; 19 20 i+=m+1;// i=i+m+1 i=3 i= 3+8+1=12 21 m=i+a+b;//m=3+4+1 m=12+4+1 22 23 return m; 24 } 25 //p1=8 p2=17
static 的功能:保留变量的值,再次进入函数,static 变量值为上次函数运行终止时的值
3. 实验任务3
1 #include<stdio.h> 2 #include<stdlib.h> 3 long long func(int n); 4 int main() 5 { 6 int n; 7 long long f; 8 while(scanf("%d",&n)!=EOF) 9 { 10 f=func(n); 11 printf("n=%d,f=%lld\n",n,f); 12 } 13 system("pause"); 14 return 0; 15 } 16 17 long long func(int x) 18 { 19 long long ans=0; 20 21 if(x==1) 22 ans=1; 23 24 if(x>0&&x<33) 25 ans=2*func(x-1)+1; 26 27 return ans; 28 }
4. 实验任务4
递归:
1 #include<stdio.h> 2 #include<stdlib.h> 3 int func(int n,int m); 4 int main() 5 { 6 int n,m; 7 8 while(scanf("%d%d",&n,&m)!=EOF) 9 printf("n= %d,m= %d,ans= %d\n",n,m,func(n,m)); 10 11 system("pause"); 12 return 0; 13 }
//func 代码 14 int func(int n,int m) 15 { 16 int ans; 17 18 if(n<m) 19 ans=0; 20 else if(m==n) 21 ans=1; 22 else if(m==1) 23 ans=n; 24 else if(m==0) 25 ans=1; 26 else 27 ans=func(n-1,m)+func(n-1,m-1); 28 29 return ans; 30 }
迭代:
1 #include<stdio.h> 2 #include<stdlib.h> 3 int func(int n,int m); 4 int main() 5 { 6 int n,m; 7 8 while(scanf("%d%d",&n,&m)!=EOF) 9 printf("n= %d,m= %d,ans= %d\n",n,m,func(n,m)); 10 11 system("pause"); 12 return 0; 13 }
//func代码 14 int func(int n,int m) 15 { 16 int s=1,j=0,a=1,b=1,c=1; 17 18 if(m==0) 19 s=1; 20 else if(m>n) 21 s=0; 22 else 23 { 24 for(j=n-m;n>0;) 25 { 26 a*=n--; 27 if(m>0) 28 b*=m--; 29 if(j>0) 30 c*=j--; 31 } 32 s=a/(b*c); 33 } 34 return s; 35 }
5. 实验任务5
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 void plate(char from,char to,char temp ,unsigned int n,int *p); 5 void trans(char from,char to,unsigned int n,int *p); 6 int main() 7 { 8 unsigned int n; 9 while(scanf("%d",&n)!=EOF) 10 { 11 int s=0; 12 plate('A','C','B',n,&s); 13 printf("\n一共移动了%d次\n\n",s); 14 } 15 system("pause"); 16 return 0; 17 } 18 void plate(char from,char to,char temp ,unsigned int n,int *p) 19 { 20 if(n==1) 21 trans(from,to,n,p); 22 else 23 { 24 plate(from,temp,to,n-1,p); 25 trans(from,to,n,p); 26 plate(temp,to,from,n-1,p); 27 } 28 29 } 30 void trans(char from,char to,unsigned int n,int *p) 31 { 32 printf("%d: %c --> %c\n",n,from,to); 33 *p=*p+1; 34 }
6. 实验任务6
1 #include<stdio.h> 2 #include<stdlib.h> 3 long func(long s); 4 int main() 5 { 6 long s, t; 7 8 printf("Enter a number: "); 9 while (scanf("%ld", &s) != EOF) { 10 t = func(s); // 函数调用 11 printf("new number is: %ld\n\n", t); 12 printf("Enter a number: "); 13 } 14 15 system("pause"); 16 return 0; 17 } 18 long func(long s) 19 { 20 int i=1,m=0,j=1; 21 while(s!=0) 22 { 23 i=s%10; 24 if(i%2!=0) 25 { 26 m=m+i*j; 27 j=j*10; 28 29 } 30 s=s/10; 31 } 32 33 return m; 34 }
7. 实验任务7
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <time.h> 4 int main() 5 { 6 int i,j,k,a,b,y[10]; 7 8 srand (time(0)); 9 i=rand()%10+1; 10 printf("初始值:%d\n",i); 11 12 for(i,k=1;k!=0;++i) 13 { 14 a=i*i; 15 b=i*i*i; 16 for(j=0;j<10;++j) 17 { 18 if(a) 19 { 20 y[j]=a%10; 21 a/=10; 22 } 23 else if(b) 24 { 25 y[j]=b%10; 26 b/=10; 27 } 28 else 29 break; 30 } 31 if(j<10) 32 continue; 33 else 34 for(j=0;j<10;++j) 35 { 36 for(a=0;a<10;++a) 37 if(y[j]==y[a]&&j!=a) 38 break; 39 if(a<10) 40 break; 41 } 42 if(j==10) 43 { 44 printf("满足条件:%d",i); 45 k--; 46 } 47 } 48 49 system("pause"); 50 return 0; 51 }
标签:10,函数,int,编程,long,C语言,func,printf,include From: https://www.cnblogs.com/zbb07/p/18162184