c语言函数

C语言,如何产生随机数

狂风中的少年 提交于 2019-12-30 11:35:01
1. 基本函数 在C语言中取随机数所需要的函数是: int rand(void); void srand (unsigned int n); rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件: #include <stdlib.h> 2. 使用方法 rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。 srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。 for (int i=0; i<10; i++) { printf("%d ", rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 srand(1); for (int i=0; i<10; i++) { printf("%d ", rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 例2的输出结果与例1是完全一样的。

C语言快排函数qsort()

眉间皱痕 提交于 2019-12-30 02:51:13
今天刷leetcode的时候发现有个题解中写了这个函数,然后我看他没定义这个函数就直接用了,然后就搜了一下,后来发现这个函数就是c的库函数,他在stdlib.h中,共有四个参数,没有返回值。 函数原型: int ( * cmp ) ( const void * , const void * ) ; qsort ( * s , n , sizeof ( s [ 0 ] , cmp ) ) ; 这里s是需要排序的数组的首地址,n是需要排序的元素个数,sizeof就是每一个元素占的空间的大小,只想函数的指针,用来确定排序的顺序。 然后cmp函数写法为: int cmp ( const void * a , const void * b ) { return * ( int * ) a - * ( int * ) b ; //从小到大排序 //return *(int *b)-*(int *)a;由大到小排序 } 此处cmp函数的返回值,<0(不进行置换),>0(进行置换),0(不进行置换)。 来源: CSDN 作者: 很菜的码农小萌新 链接: https://blog.csdn.net/qq_43551263/article/details/103753339

C语言 递归计算Ackermenn函数

ぐ巨炮叔叔 提交于 2019-12-30 01:07:44
题目描述 本题要求实现Ackermenn函数的计算,其函数定义如下: 函数接口定义: int Ack( int m, int n ); 其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型范围内。 裁判测试程序样例: #include <stdio.h> int Ack( int m, int n ); int main() { int m, n; scanf("%d %d", &m, &n); printf("%d\n", Ack(m, n)); return 0; } /* 你的代码将被嵌在这里 */ 输入 输入m、n,m,n是非负整数 输出 输出Ackermenn(m,n)的相应值 样例输入 Copy 2 3 样例输出 Copy 9 代码 # include <stdio.h> int Ack ( int m , int n ) ; int main ( ) { int m , n ; scanf ( "%d %d" , & m , & n ) ; printf ( "%d\n" , Ack ( m , n ) ) ; return 0 ; } int Ack ( int m , int n ) { int s ; if ( m == 0 ) return s = n + 1 ; if ( n == 0 && m > 0 )

c语言博客作业11

二次信任 提交于 2019-12-29 22:22:20
1.PTA实验作业 PTA排名: 1.1 6-1 统计某类完全平方数 题目内容: 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。 函数接口定义: int IsTheNumber ( const int N ); 其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。 裁判测试程序样例: include <stdio.h> include <math.h> int IsTheNumber ( const int N ); int main() { int n1, n2, i, cnt; scanf("%d %d", &n1, &n2); cnt = 0; for ( i=n1; i<=n2; i++ ) { if ( IsTheNumber(i) ) cnt++; } printf("cnt = %d\n", cnt); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 105 500 输出样例: cnt = 6 1.1.1数据处理 数据表达:首先定义m ,n两个变量 数据处理:运用了数学运算函数sqrt,另外运用了数组运算和while函数 1.1.2实验代码截图 1.1.3 造测试数据 1.1.4 PTA提交列表及说明 提交列表说明 []( https://img2018

C语言I博客作业11

心已入冬 提交于 2019-12-29 22:22:10
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 C语言I博客作业11 我在这个课程的目标是 熟悉代码的编程,设计出一个小程序,能够正常运行并且能够拥有一定用户 这个作业在哪个地方具体方面帮助我实现目标 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型 参考文献 C语言课本 百度百科 1.PTA实验作业 1.1题目名 ( 统计各位数字之和是5的数 ) 题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。 函数接口定义: int is( int number ); void count_sum( int a, int b ); 函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。 函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式 count = 满足条件的整数个数, sum = 这些整数的和 进行输出。题目保证0<a≤b≤10000。 裁判测试程序样例: #include <stdio.h> int is( int number ); void count_sum( int a, int b ); int main() { int a, b;

C语言报错警告合集(转)

ぐ巨炮叔叔 提交于 2019-12-29 21:44:03
C 常见错误 附录1 常见错误中英文对照表 fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译 fatal error C1004: unexpected end of file found 中文对照:(编译错误)文件未结束分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“”不完整等 fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”? 解决1:关闭.CPP文件的"使用预编译头"的选项 右键选择该文件->属性->预编译头,选"不使用预编译头" 解决2: 直接在工程设置里关闭使用预编译头的选项。步骤和上一方法类似 fatal error C1083: Cannot open include file: 'xxx': No such file or directory 中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径分析:头文件不存在、或者头文件拼写错误、或者文件为只读 error BK1506 : cannot open file '.\Debug\StdAfx.sbr': No

C语言 递归实现指数函数

主宰稳场 提交于 2019-12-29 17:23:13
题目描述 本题要求实现一个计算xn(n≥1)的函数。 函数接口定义: double calc_pow( double x, int n ); 函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。 裁判测试程序样例: #include <stdio.h> double calc_pow( double x, int n ); int main() { double x; int n; scanf("%lf %d", &x, &n); printf("%.0f\n", calc_pow(x, n)); return 0; } /* 你的代码将被嵌在这里 */ 输入 题目要求输入x,n(n>=1)输出按题目要求输出xn ,题目保证结果在双精度范围内。 样例输入 Copy 2 3 样例输出 Copy 8 代码 double calc_pow ( double x , int n ) { if ( n == 0 ) return 1 ; else { return x * calc_pow ( x , n = n - 1 ) ; } } 来源: CSDN 作者: Qianzhanshuo 链接: https://blog.csdn.net/Qianzshuo/article/details/103751528

C语言I作业05

末鹿安然 提交于 2019-12-28 11:10:19
问题 答案 这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 作业链接 我在这个课程的目标是 熟练使用乘方表和阶乘表的函数 这个作业在那个具体方面帮助我实现目标 在做题目时多次运用函数 参考文献 C语言程序教材,百度 1.PTA实验作业 1.1 判断一个整数的各位数字平方之和能否被5整除 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0 1.1.1数据处理 数据表达:设置了变量n和x,变量n是由题目给出的,x是代表n的各位数字平方之和。n,x都是整型变量。 数据处理:表达式:x+=(n%10)*(n%10); n/=10;流程结构:使用了while语句进行循环和if-else语句。 函数参数:主调函数为int main(),被调函数是int func(const int n); 1.1.2实验代码截图 1.1.3 造测试数据 输入数据 输出数据 说明 14 The result is 0 各位数平方之和是17 111 The result is 0 各位数之平方和为3 1234 The result is 1 各位数平方之和是30,可以被5整除 1.1.4 PTA提交列表及说明 1.答案错误:第一遍打出来后一直是答案错误,不知道是什么原因。 2.编译错误:while语句后加了分号,后面才知道不需要分号。 3.答案错误

C语言I博客作业05

时光怂恿深爱的人放手 提交于 2019-12-28 11:09:37
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 C语言I作业05 我在这个课程的目标是 学习自定义函数和函数的调用 这个作业在那个具体方面帮助我实现目标 学会生成乘方表与阶乘表 参考文献 百度百科 #1.PTA实验作业 1.1 题目名1 水仙花数判断 本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0. 1.1.1数据处理 数据表达:定义了n,a,b,c,i 数据处理:用了lf—else语句,if用来确定函数返回值。 **函数参数:被调函数:int func(const int N) 1.1.2实验代码截图 1.1.3造测试数据 输入数据 输出数据 说明 100 0 最小的符合水仙花数的三位数 370 1 符合水仙花数的三位数 562 0 不符合水仙花数的三位数 1.1.4 PTA提交列表及说明 1.编译错误:没注意把“;”用中文写的 2.编译错误:把赋值运算符“==” 给写成了 “=” 1.2题目名 判断一个整数的各位数字平方之和能否被5整除 判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 1.2.1 数据处理 数据表达:定义整型s n。 数据处理

C/C++——C语言库函数大全

痴心易碎 提交于 2019-12-27 03:12:05
本文转载自:https://blog.csdn.net/yanfan0916/article/details/6450442###; 1. 分类函数: ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace