- 博客(17)
- 收藏
- 关注
原创 B1018 锤子剪刀布 (20分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数N(≤105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第 1 个字母代表甲方,第 ...
2020-03-08 14:03:01
283
原创 习题11-8 单链表结点删除 (20分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, i...
2020-03-05 18:36:39
447
1
原创 习题11-7 奇数值结点链表 (20分)
本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *getodd( struct ListNode **L ...
2020-03-05 18:32:53
800
原创 递归练习(斐波那契数列)
题目描述:一个楼梯共有n个台阶,一次只能走1个,或2个台阶,走到完n个台阶有多少种走法?先从简单入手:1个台阶 有一种走法;(1)2个台阶 有两种走法: (1, 1) (2)3个台阶 有三种走法: (1,1,1) (1,2) (2,1)4个台阶 有五种走法:(1,1,1,1) (1,2,1) (2,1,1)(1,1,2)(2,2)…………n个台...
2020-03-04 11:21:37
378
原创 快速判断一个数是否是2的幂次
2的非零幂次数为:1,2,4,8,16, 32……将其化为二进制 0001, 0010, 0100, 1000………… 可以观察到这样一个规律:二进制位数中有且仅有一位为1。则可以利用这个规律进行快速判断。如以16为例,其二进制为 1 0000,16-1=15,15的二进制为 0 1111, 可以将16和15进行相与运算,10000&01111 == 00000,即16&...
2020-02-28 17:51:25
4042
1
原创 位操作符详解与举例(将指定的位置设为1或0)
位操作符对它们的各个位执行AND(与),OR(或),NOT(非)和XOR(异或)等逻辑操作AND 按位与处理两个长度相同的二进制数,两个相应的二进位都为1,该位的结果值才为1,否则为0。符号为& 如:0101 &0011 == 0001OR 按位或处理两个长度相同的二进制数,两个相应的二进位中只要有一个为1,该位的结果值为1,否则为0。符号为 |...
2020-02-28 17:36:33
2921
1
原创 汉诺塔问题分析和求解(Hanoi)
汉诺塔问题据说源自一个印度的古老传说,本人觉得真的很无聊,古代印度人是有多无聊才能想到这个玩法。。。汉诺塔可以利用递归的思想去解决,在解决这个问题的时候,可以先从两个盘子开始模拟,进而推到三个盘子以致更多。具体代码如下://目标:将a柱的盘子移动到c柱#include <stdio.h>#include <stdlib.h>void Hanoi(int ...
2020-02-10 18:23:07
343
转载 C语言报错警告合集(转)
C常见错误附录1 常见错误中英文对照表fatal error C1003: error count exceeds number; stopping compilation中文对照:(编译错误)错误太多,停止编译分析:修改之前的错误,再次编译fatal error C1004: unexpected end of file found中文对照:(编译错误)文件未结束分析:一个函数或...
2019-12-29 17:53:42
4642
原创 利用函数指针 综合求数组的升序和降序
//升序和降序#include <stdio.h>#define N 50int Ascend(int a, int b);int Descend(int a, int b);void Swap(int *a, int *b);void Sort(int a[], int n, int (*compare)(int, int));int main(){ in...
2018-10-25 22:59:15
1280
2
原创 利用阶乘讲普通递归和尾递归
阶乘是一个很基本的数学问题,n!=n*(n-1)*(n-2)*...*2*1,利用程序来解决阶乘问题比较简单,可以利用循环或者递归,这里讲两种递归方法。第一种:普通递归:int factorial(int n){ if(n==1 || n==0) return 1; else return n*factorial(n-1);...
2018-10-25 02:41:56
3849
1
原创 利用C语言实现大数加减法
大数加法:#include <stdio.h>#include <string.h>#define M 100 //定义了数量M是100作为数组初始化的数量 int main(){ int i, j, len_s1, len_s2; // len_s1是字符数组s1的长度, len_s2是字符数组s2的长度, char s1[M], s2[M...
2018-08-24 15:02:33
22410
11
原创 7-1 厘米换算英尺英寸(基础编程题)
7-1 厘米换算英尺英寸如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6#inc...
2018-02-24 23:06:52
10038
3
原创 PTA 6-9 (基础编程题)
6-9 统计个位数字本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。函数接口定义:int Count_Digit ( const int N, const int D );其中N和D都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回N中D出现的次数。裁判测试程序样例:#include <s...
2018-02-23 23:32:05
2178
原创 基础编程题 6-7 统计某类完全平方数
6-7 统计某类完全平方数本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h&g...
2018-02-22 23:01:27
837
1
原创 一些简单的字符串函数
在编写程序的时候,经常需要对字符和字符串进行操作,如转换字符的大小写、求字符串长度等等,这些都可以使用字符函数和字符串函数来处理。C语言标准函数库为其提供了一系列处理函数。在编写函数的过程中,合理、有效地使用这些字符串函数,可以提高编程效率,同时也可以提高程序性能。这里介绍一些常用的字符串处理函数。一:strcpy()字符串复制函数。语法格式:strcpy(目的字符数组名,源字符数组名)
2018-01-16 17:10:50
836
原创 PAT B1002(写出这个数)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu#inc
2018-01-15 13:42:11
731
原创 随机数函数srand()与rand()二三事
真正意义上的随机数,随机数列是源于随机实验的结果,均匀分布且生成不能重现。例如,使用离子辐射事件的脉冲检测器气体放电管和带泄露的电容等。在计算机中的随机函数是按照一定算法模拟产生的,结果是确定的,是可见的,从而我们可以这样认为:这个可预见的结果出现的概率是100%。所以计算机随机函数所产生的的随机数是伪随机数,并不是真正意义上的随机数。伪随机数的产生可以利用多种算法,有线性同余算法,Blum
2018-01-13 22:00:14
2135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人