task1
#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;//生成1-24随机数 col = rand() %80; print_text(line,col,text); Sleep(1000); } system("pause"); return 0; } void print_spaces(int n){ int i; for(i = 1;i <= n; ++i) printf(" "); }
功能:随机生成行和列,每隔1000ms,打印“hi,April~”,循环10次。
task2-1
#include <stdio.h> #include <stdlib.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)); system("pause"); return 0; } long long fac(int n){ static long long p = 1; p = p*n; return p; }
task2-2
#include <stdio.h> #include <stdlib.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); system("pause"); return 0; } int func(int a,int b){ static int m = 0,i = 2; i += m+1; m = i+a+b; return m; }
结果一致。
static变量特征:只赋初值一次,保留上次调用结束的值。
task3
#include <stdio.h> #include <stdlib.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); } system("pause"); return 0; } long long func(int n){ long long f; if(n == 1) return 1; else f = 2 * func(n-1)+1; return f; }
task4
#include <stdio.h> #include <stdlib.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)); system("pause"); return 0; } int func(int n, int m){ int ans,i,j; int up=1,down=1; if(n<m) ans = 0; else{for(i = n-m+1;i<=n;++i) up = up * i; for(j = 1;j<= m;++j) down = down * j; ans = up/down;} return ans; }
#include <stdio.h> #include <stdlib.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)); system("pause"); return 0; } int func(int n, int m){ int ans; if(m == n ) ans = 1; else if(m == 1) ans = n; else if(m == 0) ans = 1; else if(n == 0) ans = 0; else{ ans = func(n-1,m)+func(n-1,m-1);} return ans; }
task5
#include <stdio.h> #include <stdlib.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; int num; while(scanf("%u",&n)!= EOF){ hanoi(n,'A','B','C'); num = pow(2,n)-1; printf("一共移动了%d次",num);} system("pause"); 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); }
task6
#include <stdio.h> #include <stdlib.h> long func(long s); int main(){ long s,t; printf("Enter a number:"); while(scanf("%ld",&s)!= EOF){ t = func(s); printf("new number is:%ld\n\n",t); printf("Enter a number:"); } system("pause"); return 0; } long func(long s){ long ans; long digit,t; ans = 0; t = 1; while(s != 0){ digit = s%10; if(digit %2 == 1){ ans += t*digit; t *=10;//为下一个数做准备 } s /= 10; } return ans; }
标签:int,long,char,实验,func,ans,include From: https://www.cnblogs.com/zhaozhimo/p/18160691