task1
源代码
#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,November~"; 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 november”10次
task2
源代码
#include<stdio.h> long long fac(int n); int main() { int i, n; printf("Enter n:"); scanf_s("%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("%lld\n", p); p = p * n; return p; }
#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; }
截图
局部静态变量特点
(1)该变量在全局数据区分配内存;
(2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
(3)静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为 0;
(4)它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。(1)该变量在全局数据区分配内存;
task3
源代码
#include<stdio.h> long long func(int n); int main() { int n; long long f; while (scanf_s("%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; } return 2 * func(n - 1) + 1; }
截图
task4
源代码
#include<stdio.h> int func(int n, int m); int main() { int n, m; while (scanf_s("%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 (m>n) { return 0; } else if (m == n) { return 1; } else if (m < n) { if (m == 1) { return n; } else if (m == 0) { return 1; } else return func(n - 1, m) + func(n - 1, m - 1); } }
截图
task5
源代码
#include<stdio.h> int mul(int n, int m); int main() { int n, m; while (scanf_s("%d%d", &n, &m) != EOF) printf("%d*%d=%d\n", n, m, mul(n, m)); return 0; } int mul(int n, int m) { int t; if (n < m) { t = n; n = m; m = t; } if (m == 0) return 0; else return n + mul(n, m - 1); }
截图
task6
源代码
#include<stdio.h> #include<stdlib.h> void hanoi(unsigned int n, char from, char temp, char to); void moveplate(unsigned int n, char from, char to); int count=0; int main() { unsigned int n; while (scanf_s("%d", &n) != EOF) { hanoi(n, 'A', 'B', 'C'); printf("\n"); printf("一共移动了%d次", count); printf("\n"); count = 0; } 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) { count++; printf("%u:%c-->%c\n", n, from, to); }
截图
task7
源代码
#include<stdio.h> #include<stdlib.h> #include<math.h> int is_prime(unsigned int n); int main() { int i,p, q, p_flag, q_flag; unsigned int n; while (scanf_s("%d", &n) != EOF) { if (n % 2 == 1 || n < 4) { printf("数据输入错误"); return 0; } p = 1; do { p = p + 1; q = n - p; p_flag = is_prime(p); q_flag = is_prime(q); } while (p_flag* q_flag ==0); printf("%d=%d+%d\n", n, p, q); } return 0; } int is_prime(unsigned int n) { int i, m; m = sqrt(1.0 * n); for (i = 2; i <= m; i++) if (n % i == 0)break; if (i > m && n != 1) return 1; else return 0; }
截图
task8
源代码
#include<stdio.h> #include<math.h> long func(long s); int digit[100]; int digit_[100]; int main() { long s, t; printf("Enter a number:"); while (scanf_s("%ld", &s) != EOF) { t = func(s); printf("new number is:%ld\n\n", t); printf("Enter a number:"); } return 0; } long func(long s) { int i=0,t,m=0,n,x=0; do { digit[i] = s % 10; s = (s - digit[i])/10; i++; } while (s - digit[i] != 0); for (t = 0; t <= i; t++) { if (digit[t] % 2 == 1) { digit_[m] = digit[t]; m++; } } for (n = 0; n <= m; n++) x = x + digit_[n] * pow(10, n); return x; }
截图
原文地址:http://www.cnblogs.com/lzq0306/p/lzqprogramtask3.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性