任务1
源码
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #include <windows.h> 5 #define N 80 6 void print_text(int line, int col, char text[]);// 函数声明 7 void print_spaces(int n); // 函数声明 8 void print_blank_lines(int n); // 函数声明 9 int main() 10 { int line, col, i; 11 char text[N] = "hi, November~"; 12 srand(time(0)); // 以当前系统时间作为随机种子 13 for(i = 1; i <= 10; ++i) 14 { line = rand() % 25; 15 col = rand() % 80; 16 print_text(line, col, text); 17 Sleep(1000); // 暂停1000ms 18 } 19 return 0; }// 打印n个空格 20 void print_spaces(int n) 21 { int i; 22 for(i = 1; i <= n; ++i) 23 printf(" "); }// 打印n行空白行 24 void print_blank_lines(int n) 25 { int i; 26 for(i = 1; i <= n; ++i) 27 printf("\n"); }// 在第line行第col列打印一段文本 28 void print_text(int line, int col, char text[]) 29 { print_blank_lines(line-1); // 打印(line-1)行空行 30 print_spaces(col-1); // 打印(col-1)列空格 31 printf("%s", text); // 在第line行、col列输出text中字符串 32 }
输出结果
功能为随机在col行,line列后输出字符串"hi, November~"col,
其中0<=col<=79,0<=line<=24
输出十次
任务2
2_1源码
// 利用局部static变量的特性,计算阶乘 #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; p = p * n; return p; }
增加代码后结果
2_2源码
// 练习:局部static变量特性
#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;
}
2_2结果
总结,static函数是可在函数内定义的全局变量,可被所有函数访问并改变
任务3
源码
#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) {if (n==1) return 1; else return 2*(func(n-1)+1)-1; }
结果
任务4
迭代方法
#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 i=0; double result=1; do{ result*=(double)n/m; n--; m--; i++; }while(i<=m); return (int)result; }
递归方法
#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) { if (n<m) return 0; else if(m==1) return n; else if(m==0) return 0; else return func(n-1,m)+func(n-1,m-1); }
结果
任务5
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdlib.h> #include<stdio.h> void hanoi(int i,char from,char temp,char to); void move1(int k,char b,char c); int time=0; int main() {int n; while(scanf("%d",&n)!=EOF) { hanoi(n,'A','B','C'); printf("\n一共移动了%d次\n",time); time=0; } system("pause"); return 0; } void hanoi(int i,char from,char temp,char to) {if(i==1) {move1(i,from,to);} else {hanoi(i-1,from,to,temp); move1(i,from,to); hanoi(i-1,temp,from,to);} } void move1(int k,char b,char c) { printf("%d: %c-->%c\n",k,b,c); time++; }
结果
任务6
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdlib.h> #include<stdio.h> int main() { long long n,result=0,time=1,single; printf("Enter an number:"); while(scanf("%lld",&n)!=EOF) {for(;n>0;n=n/10) { single=n%10; if(single%2==0) continue; else if(single%2==1) {result+=single*time; time*=10;} } printf("%lld\n",result); } system("pause"); return 0; }
结果
任务7
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdlib.h> #include<stdio.h> int main() { long long n,square,cube,t=0,i=0; int k,x,time[11]; for(n=1;t!=10;n++) { t=0; for(k=0;k<=10;k++) {time[k]=0;} square=n*n,cube=n*n*n; for(;square>0;square=square/10) { x=square%10; time[x]+=1; } for(;cube>0;cube=cube/10) { x=cube%10; time[x]+=1; } for(k=0;k<=9;k++) { if(time[k]==1) {t++;} } printf("%lld\n",n-1
); system("pause"); return 0; }
结果
标签:函数,int,编程,long,C语言,char,func,time,include From: https://www.cnblogs.com/lvys/p/17798299.html