- 博客(51)
- 收藏
- 关注
原创 推挽输出和开漏输出
1.如果在当前图的情况下要输出高电平,那么P-MOS导通,N-MOS截止,VDD的电压就会传递过去使其输出高电平2.如果要输出低电平,那么N-MOS导通,P-MOS截止,相当于引脚直接接地输出低电平。
2023-02-24 16:23:49
821
原创 51单片机入门——矩阵键盘(附51代码)
首先我们先让一行为低电平,其他行为高电平(此时我们确定了行数),然后立即检测各列是否有低电平,如果检测到低电平(此时确定了列数),那我们就知道了当前被按下的是哪一行哪一列,然后用同样的方法,一直保持扫描。
2023-02-12 23:52:31
10520
1
原创 51单片机入门——独立按键控制LED状态
1. 按键的抖动软件消抖:利用延时消除抖动程序代码#include<REGX52.H>void delay(unsigned int xms) //用生成的1ms的函数改造的自定义延时时间的函数{ unsigned char i, j; while(xms>0){ i = 2; j = 239; do { while (--j); } while (--i); xms--; }}void main(){ while(1){
2022-05-29 10:59:11
394
原创 习题7-8 字符串转换成十进制整数 (15 分)
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:±P-xf4±1!#输出样例:-3905#include<stdio.h>#include<math.h>int main() {
2022-03-03 13:57:01
571
原创 PTA_习题7-7 字符串替换 (15 分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC XD W… …X CY BZ A输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:Lnly the 11 XZKRtaO OeGtVIH are replaced.#include<st
2022-03-02 15:58:48
524
原创 习题7-5 找鞍点 (20 分)
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9输出样例1:2 1输入样例2:21
2022-03-02 10:42:41
203
原创 习题7-3 判断上三角矩阵
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。输入样例:331 2 30 4 50 0 621 0-8 231 2
2021-12-24 17:14:14
126
原创 习题7-2 求一批整数中出现最多的个位数字
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 …”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。输入样例:31234 2345 3456输出
2021-12-24 11:40:53
204
原创 练习7-7 矩阵运算
练习7-7 矩阵运算给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42 3 4 15 6 1 17 1 8 11 1 1 1输出样例:35#include<stdio.h>int main(
2021-12-19 10:05:06
144
原创 练习7-4 找出不是两个数组共有的元素 (20 分)
练习7-4 找出不是两个数组共有的元素 (20 分)给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出样例:
2021-12-18 16:16:55
147
原创 练习7-2 求最大值及其下标
题目要求练习7-2 求最大值及其下标 (20 分)本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分开。输入样例:62 8 10 1 9 10结尾无空行输出样例:10 2代码#include<stdio.h>int main(){ int n; scanf("%d
2021-12-15 10:49:48
1714
原创 习题6-5 使用函数验证哥德巴赫猜想
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。函数接口定义:int prime( int p );void Goldbach( int n );其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数Goldbach按照格式“n=p+q”输出n的素数分解,其中p≤q均为素数。又因为这样的分解不唯一(例如24可以分解为5+19,还可以分解为7+17),要求必须输
2021-12-12 20:54:15
292
原创 习题6-3 使用函数输出指定范围内的完数
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数
2021-12-12 10:08:48
203
原创 习题5-8 空心的数字金字塔
本题要求实现一个函数,输出n行空心的数字金字塔。函数接口定义:void hollowPyramid( int n );其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行空心的数字金字塔,请注意,最后一行的第一个数字前没有空格。裁判测试程序样例:#include <stdio.h>void hollowPyramid ( int n );int main(){int n;scanf("%d", &n);hollowPyramid (
2021-12-10 11:28:47
478
原创 习题5-7 使用函数求余弦函数的近似值
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯函数接口定义:double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例:#include <stdio.h>#include <math.h>
2021-12-10 09:49:26
3510
1
原创 习题5-6 使用函数输出水仙花数
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开区间(m, n)内所有的水仙花数
2021-12-09 18:36:31
181
原创 习题4-11 兔子繁衍问题
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行中输出兔子总数达到N最少需要的月数。输入样例:30结尾无空行输出样例:9结尾无空行分析过程#include<stdio.h>int main() { int N; scanf("%d",&N);
2021-12-08 10:53:06
94
原创 习题4-9 打印菱形图案
本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7结尾无空行输出样例: * * * * * * * * 结尾无空行`#include<stdio.h>#include<math.h>int main(){ int n; scanf("%d",&n); int z=n-1; int
2021-12-07 11:33:45
1311
原创 习题4-6 水仙花数
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3结尾无空行输出样例:153370371407结尾无空行#include<stdio.h>#include<math.h>int square(int x,int N){ //
2021-12-06 17:57:21
87
原创 习题4-2 求幂级数展开的部分和
已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。输入格式:输入在一行中给出一个实数x∈[0,5]。输出格式:在一行中输出满足条件的幂级数部分和,保留小数点后四位。输入样例:1.2结尾无空行输出样例:3.3201#include<stdio.h>#include<math.h>double factorial(int z){
2021-12-06 08:49:19
1228
原创 练习4-11 统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。输入样例:10 31结尾无空行输出样例:7 143结尾无空行//素数 除了自己之外只能被1整除; #include<stdio.h>int primenumber(int x){ for(int z=2;z<=x;z++){ if(x==2) return 2
2021-12-05 11:43:16
289
原创 练习4-10 找出最小值
本题要求编写程序,找出给定一系列整数中的最小值。输入格式:输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。输出格式:在一行中按照“min = 最小值”的格式输出n个整数中的最小值。输入样例:4 -2 -123 100 0结尾无空行输出样例:min = -123结尾无空行#include<stdio.h>#include<math.h>int main() { int n; scanf("%d",&n); int extr
2021-12-05 09:18:27
1383
原创 练习4-6 猜数字游戏
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结
2021-12-04 16:43:02
70
原创 练习4-3 求给定精度的简单交错序列部分和 (15 分)
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + … 直到最后一项的绝对值不大于给定精度eps。输入格式:输入在一行中给出一个正实数eps。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例1:4E-2结尾无空行输出样例1:sum = 0.854457结尾无空行输入样例2:0.02输出样例2:sum = 0.826310#include<stdio.h>#in
2021-12-04 15:28:11
84
原创 习题3-5 三角形判断 (15 分)
给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。输入格式:输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。输入样例1:4 5 6 9 7 8结尾无空行输出样例1:L = 10.13
2021-12-04 11:37:17
117
原创 习题3-2 高速公路超速处罚 (15 分)
浙大版《C语言程序设计(第4版)》题目集按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理.输入格式:输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。输出格式:在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超
2021-12-02 17:37:00
96
原创 练习3-8 查询水果价格
#include<stdio.h>int main(){ printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n"); int sum=0; int number; for(int i=1;i<=5;i++){ scanf("%d",&number); if(number==0){ break; }; //特殊情况 switch(number){ case 1:prin
2021-12-02 11:10:05
194
原创 练习3-5 输出闰年
#include<stdio.h>int main(){ int year; scanf("%d",&year); if(year<2000||year>2100){ printf("Invalid year!"); }else if(year<2004){ printf("None"); }else{ for(int i=2004;i<=year;i+=4){ if((i%4==0.
2021-12-02 09:30:34
540
原创 PAT刷题笔记——基础编程题目集
6-3 简单求和错误代码int Sum ( int List[], int N ){ for(int i=0;i<N;i++){ int Sum=0; Sum=Sum+List[i]; } return Sum;}正确答案int Sum ( int List[], int N ){ int Sum=0; for(int i=0;i<N;i++){ Sum=Sum+List[i]; } return
2021-10-26 18:45:53
1545
原创 C语言教程-day1-数据类型
一.数据类型基本类型:整型–int、字符型–char、实型(浮点型)–单精度实型float,双精度实型double构造类型–数组类型–[ ],结构类型–struct,联合类型–union,枚举类型–enum指针类型–*空类型(无值类)–void二.常量不能改变的量整型,100,0,-10实型,3.12,0.1125,-3.21字符型,‘a’, ‘2’,必须单引号,里面必须有字符字符串型,“a”, “ab”,“1c23”,必须双引号,里面没有字符就是空串三.变量代码段在执行时候只读
2021-06-09 18:53:28
349
原创 Week8 指针与字符串
一.指针1.有关的运算符运算符sizeof是一个运算符,给出某个类型或变量在内存中所占据的字节数;sizeof(int) //int占据几个字节size(i) // i这个变量占据几个字节运算符&scanf("%d",&i)里的&获得变量的地址,它的操作数必须是变量-int i;printf("%x",&i);示例输出结果:%p 按16进制输出数据&不能取的地址&不能对没有地址的东西取地址-&
2021-05-18 20:49:32
173
原创 week 7 c语言入门——数组运算
一、数组运算1.初始化数组的方式方式1 for(i = 0; i < number;i++) //{ count[i] = 0; //初始化数组}方式2int count[number] = {0};2.集成初始化时的定位only c99;3.数组的大小sizeof给出整个数组所占据的内容的大小,单位是字节sizeof(a[0])给出数组中单个元素的大小,于是相除就得到了数组的单元个数这样的代码,一旦修改数组中初始的数据,不需要修改遍历的
2021-05-05 18:10:47
959
原创 Week 6 c语言入门——函数
一.例子#include<stdio.h>void sum(int begin,int end){ int i; int sum = 0; for (i = begin; i <= end; i++) { sum+= i; } printf("%d到%d的和是%d\n",begin ,end,sum);}int main(){ sum(1, 10); sum(20, 30); sum(30, 45);}void sum就是我们自己定义的一个加法函
2021-04-23 14:23:32
261
原创 Week 6 c语言入门——数组
1.数组定义——是一种容器特点其中所有元素具有相同的数据类型;一旦创建,不能改变大小;*(数组中元素的内存是依次排列的2.int a[10]3.数组的单元4.有效的下标范围c99之后可以用变量做个数,日常使用...
2021-04-17 15:21:00
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人