C语言程序设计基础 实验3 函数
#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;
}
感悟:这个代码非常的细节,考虑到了同学们可能会输入较大的n从而导致对应的阶乘超出int的范围。已知long long的范围下最大的阶乘表示为26
在line22之后插入打印
#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;
}
(2)
#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);
}
实验二
#include <stdio.h>
void printSymbol(int n, char symbol);
int main() {
int n;
char symbol;
while( scanf("%d %c", &n, &symbol) != EOF ) {
printSymbol(n, symbol);
printf("\n");
}
return 0;
} void printSymbol(int n, char symbol){
if(!n) return ;
printf("%c",symbol);
printSymbol(n-1,symbol);
}

递归版
#include <stdio.h>
void printSymbol(int n, char symbol);
int main() {
int n;
char symbol;
while( scanf("%d %c", &n, &symbol) != EOF ) {
for(int i=1;i<=n;++i) printf("%c",symbol);
printf("\n");
}
return 0;
} void printSymbol(int n, char symbol){
if(!n) return ;
printf("%c",symbol);
printSymbol(n-1,symbol);
}

我认为递归好一点,因为代码短
#include <stdio.h>
long long fun(int n);
int main() {
int n; long long f;
while (scanf("%d", &n) != EOF) {
f = fun(n);
printf("n = %d, f = %lld\n", n, f);
}
return 0;
} long long fun(int n){
if(n==1) return 1ll;
return 2ll*fun(n-1)+1;
}

#include <stdio.h>
#define true 0
#define false 1
#define bool int
bool is_prime(int x) {
for(int i=2; i<=x/i; ++i)
if(x%i==0)
return true;
return false;
} int main() {
int cnt = 0;
for(int i=101; i<=200; ++i) {
if(!is_prime(i)) {
cnt ++;
printf("%d ",i);
if(cnt%20 == 0) puts("");
}
}
puts("");
printf("101~200之间一共有%d个非素数\n",cnt);
return 0;
}
#include <stdio.h>
long fun(long s);
int main() {
long s, t;
printf("Enter a number: ");
while (scanf("%ld", &s) != EOF) {
t = fun(s);
printf("new number is: %ld\n\n", t);
printf("Enter a number: ");
}
return 0;
} long fun(long s){
long base = 1,ans=0;
while(s){
long num = s%10;
if(num&1){
ans += base*num;
base*=10;
}
s/=10;
}
return ans;
}
#include <stdio.h>
double fun(int n); // 函数声明
int main() {
int n;
double s;
printf("Enter n(1~10): ");
while (scanf("%d", &n) != EOF) {
s = fun(n); // 函数调用
printf("n = %d, s= %f\n\n", n, s);
printf("Enter n(1~10): ");
}
return 0;
}
double fun(int n){
if(n==1) return 1;
double ans = 1.0;
for(int i=1;i<=n;++i) ans*=i;
if(n&1) return fun(n-1) + 1.0/ans;
else return fun(n-1) - 1.0/ans;
}
C语言程序设计基础 实验3 函数的更多相关文章
- C语言程序设计基础知识点概括
C语言程序设计基础知识点概括 C语言程序设计基础知识点1.函数是C语言的基本构成单位.main函数是C语言程序的唯一入口.2.C语言程序开发过程. 编译过程:将以.c或.cpp结尾的源程序文件经过编译 ...
- C语言程序设计基础
C语言程序设计基础 目录 C语言 C语言基础 C语言编程注意 C语言 C语言基础 C语言编程注意 0<9<9和0<9&&9<9是不同的 数组的声明和定义 con ...
- C语言程序设计基础-第1周作业-初步
1.安装带有计算机术语的翻译软件 2.在自己电脑上安装C编译器,windows系统建议安装dev-c++,其他系统自行查找. 3.加入课程小组,有任何疑问可以在小组中提问:https://group. ...
- 《C语言程序设计基础1》第二学期第一周学习总结
**<C语言程序设计基础1>第二学期第一周学习总结 一. 本周学习内容总结 一维数组,了解了一维数组的定义(定义一个数组,需要明确数组变量名,数组元素的类型和数组大小,即数组中元素的数量) ...
- C语言程序真正的启动函数
为什么要用”真正”这个词?因为我们从学C语言开始,都会先明白这个道理,即C语言有且仅有一个main函数,main函数是C语言的入口点和出口点!(可以参考>http://www.dotcpp.co ...
- Python语言程序设计基础(5)—— 函数和代码复用
lambda sum = lambda x,y : x + y print(sum(3,3),type(sum)) 默认参数 def prints(str,times = 2) : print(str ...
- 嵌入式LinuxC语言程序设计基础教程
第1章 嵌入式LinxuC语言开发工具 第2章 数据 第3章 数据的输入输出 第4章 运算符和表达式 第5章 程序结构和控制语句 第6章 数组 第7章 指针 第8章 函数 第9章 用户自定义数据类型 ...
- 清华大学《C++语言程序设计基础》线上课程笔记03---数据的共享和保护&数组
数据的共享和保护 对象的生存期 static类型的局部变量,生存期在整个程序,局部可见. void example() { static a=1; int b=2 } 当调用完example函数后,b ...
- 清华大学《C++语言程序设计基础》线上课程笔记04---指针
指针 static int i; static int* ptr = &i; 此处的*表示ptr是指针类型(地址类型),用来存放目标数据的地址 其本身也有地址,所以又指向指针的指针; *前面的 ...
- 清华大学《C++语言程序设计基础》线上课程笔记02---类与对象
类与对象 public是类的对外访问接口: 类内初始值 在定义类时对数据成员写初始值,在创建对象的时候,会使用类内初始值初始化数据成员: class Clock { public: void show ...
随机推荐
- k8s入门_RC、RS、Deployment
RC 什么是RC: Replication Controller(副本控制器),RC能够保证pod在任意时间运行的副本数量,能够保证pod总是可用的. RC控制的pod的多个副本,每个副本都有独立的i ...
- 什么叫SSH?原理详解。
SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务.传统远程登录或文件传输方式,例如Telnet.FTP,使用明文传输数据,存在很多的安全 ...
- Perl 简单脚本处理log信息
执行了一段命令之后爆出了很多错误怎么收集 比如我们在编译一个大型项目时,编译出了很多报错,我们想收集出编译出错的每一行,肉眼看效率很低,在windows下没有grep怎么办呢? 在学习语法方面,使用p ...
- react 基础知识
基础知识 css-module react 将js转为vdom,react-dom将vdom转为dom // 外面一层是一个动态值,里面的表示的是对象 <img src={logo} style ...
- ORACLE 配置ST_GEOMETRY以支持SQL方式操作SDE数据库
这里假设已经在ORACLE里边创建了SDE数据库,在此基础上进行配置: 1.以sde用户登录到oracle,运行一下语句: SELECT * FROM USER_LIBRARIES; CREATE O ...
- 在C++创建动态数组
计算首行两数相加 #include <iostream>11 #include <vector> using namespace std; int main() { vecto ...
- css背景颜色动态渐变实例
1.https://www.imooc.com/article/27831 2.https://blog.csdn.net/lolgenius/article/details/70169493 3.h ...
- 服务器部署 halo博客项目
2020-8-9 13:45:14 有个进阶方法! 如果静态资源加载缓慢如图片,头像 则用CDN加速 (确实很秀!) https://cdn.jsdelivr.net/gh/你的用户名/你的仓库 ...
- cookie和session、token的区别
原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...
- Python 的入门学习之 Day4~6 ——from”夜曲编程“
Day 4 time: 2021.8.1. 打卡第四天.今天起得很早(7点多一些),很棒,而梳头发更快些就更好了.我也算渐渐养成了晨间学习的习惯吧,一起床就心心念念着Python课程,这让我感觉到了生 ...