c语言
文章平均质量分 63
akon__ren
代码万行过,bug不沾身!
展开
-
c语言--百元买百鸡
问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?思路先行: 第一步:我们首先定义三个变量,即公鸡:cock,母鸡:hen,小鸡:chick。通读题意,我们可以得知:所谓的“”百钱“”就是代表 cock*5+hen*3+chick/3=100; 第二步:所谓“”百鸡“...原创 2018-04-15 07:29:07 · 37874 阅读 · 0 评论 -
PAT-B 1031. 查验身份证(15)
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份...原创 2019-03-19 18:50:21 · 348 阅读 · 0 评论 -
PAT-B 1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu思路分析:1.先把输入的数字存成字...原创 2019-03-19 19:32:11 · 170 阅读 · 0 评论 -
PAT-B 1009. 说反话 (20)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Co...原创 2019-03-19 20:02:37 · 149 阅读 · 0 评论 -
PAT-B 1016. 部分A+B (15)
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入格式:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。输出格式:在一行中输出PA + PB的值。输入样例1:...原创 2019-03-11 15:39:28 · 250 阅读 · 0 评论 -
PAT-B 1014. 福尔摩斯的约会 (20)
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天...原创 2019-03-19 22:53:00 · 167 阅读 · 0 评论 -
PAT-B 1027. 打印沙漏(20)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************(按中心居中打印,这里无法显示居中效果)所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的...原创 2019-03-15 17:02:58 · 157 阅读 · 0 评论 -
PAT-B 1026. 程序运行时间(15)
要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个时钟打点数C1;在f执行完成后再调用c...原创 2019-03-11 16:32:46 · 260 阅读 · 0 评论 -
PAT-B 1046. 划拳(15)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式...原创 2019-03-11 17:09:48 · 204 阅读 · 0 评论 -
PAT-B 1024. 科学计数法 (20)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式:每个输入包含1个测试用例,即一个以科学计数法表示的实数A。该...原创 2019-03-20 20:48:32 · 237 阅读 · 0 评论 -
PAT-B 1008. 数组元素循环右移问题 (20)
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N (1<=N<=...原创 2019-03-12 17:12:09 · 294 阅读 · 0 评论 -
PAT-B 1037. 在霍格沃茨找零钱(20)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。输入格式:输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galle...原创 2019-03-17 17:07:50 · 225 阅读 · 0 评论 -
PAT-B 1006. 换个格式输出整数 (15)
让我们用字母B来表示“百”、字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数。例如234应该被输出为BBSSS1234,因为它有2个“百”、3个“十”、以及个位的4。输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000)。输出格式:每个测试用例的输出占一行,用规定的格式输出n。输入样例1:234输出样例1:BBSSS...原创 2019-03-17 17:32:33 · 174 阅读 · 0 评论 -
PAT-B 1012. 数字分类 (20)
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入格式:每个输入包含1个测试用例。每个测试用例先给出一个不...原创 2019-03-12 20:02:58 · 179 阅读 · 0 评论 -
PAT-B 1018. 锤子剪刀布 (20)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个...原创 2019-03-12 21:30:26 · 279 阅读 · 0 评论 -
PAT-B 1021. 个位数统计 (15)
给定一个k位整数N = dk-1*10^(k-1) + ... + d1*10^1 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出格式:对N中每一种不同的个位数字,以D:...原创 2019-03-17 20:16:20 · 155 阅读 · 0 评论 -
PAT-B 1010. 一元多项式求导 (25)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。输入样例:3 4 -5 2 6 1 -2 0输出样例:...原创 2019-03-13 19:29:55 · 218 阅读 · 0 评论 -
PAT-B 1011. A+B和C (15)
给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。输入格式:输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入...原创 2019-03-07 21:31:33 · 311 阅读 · 0 评论 -
PAT-B 1019. 数字黑洞 (20)
给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532...原创 2019-03-07 20:19:44 · 230 阅读 · 0 评论 -
PAT-B 1040. 有几个PAT(25)
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过10^5,只包含P、A、T三种字母。输出格式:在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余...原创 2019-03-07 15:59:12 · 427 阅读 · 0 评论 -
c语言实例--打渔晒网问题
问题:中国有句俗语叫“三天打鱼两天晒网”。某人从2018年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。思路先行: 第一步:先判断输入的年份是否为闰年,闰年366天,平年365天; 第二步:计算从2018年1月1日起到以后某年的总天数; 2.1:先判断是否为闰年 ...原创 2018-04-15 11:54:28 · 3090 阅读 · 0 评论 -
c语言实例--判定三角形的类型
问题:根据输入的三角形的三条边判断三角形的类型,并输出他的面积和类型。思路先行:第一步:先判断输入的三条边能否构成三角形。(a+b>c && a+c>b && b+c>a)。第二步:计算三角形的面积:根据秦九昭的公式:先计算三角形周长的一半,然后根据公式计算三角形的面积(area=sqrt(s*(s-a)*(s-b)*(s-c)));sart为求根...原创 2018-04-16 20:32:54 · 33419 阅读 · 3 评论 -
c语言实例--婚礼上的谎言
问题:三对情侣参加婚礼,3个新郎a、b、c,3个新娘x、y、z,有人想知道究竟谁和谁结婚,于是就问新人中的三位,得到如下提示:a说他将和x结婚;x说他的未婚夫是c;c说他将和z结婚。这人事后知道他们都在开玩笑,说的全是假话,那么究竟谁与谁结婚呢?思路先行: 第一步: 我们设a=1 代表(a与x结婚),否则 a!=1; ...原创 2018-04-12 23:18:10 · 2307 阅读 · 4 评论 -
c语言实例--求100--200之间的素数(最简单的方法求素数)
问题:求出100-200之间的全部素数!!!思路先行:第一步:素数的判定条件为:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数叫做质数;否则称为合数。第二步:使用双重for循环,第一层:遍历100-200之间的数字。 第二层:遍历(2)-(i-1)之间的数字第三步:使用if判断语句:如果i%j==0...原创 2018-04-18 23:17:05 · 64823 阅读 · 28 评论 -
c语言实例--十进制转化为二进制
问题:实现十进制转化为二进制的代码。思路先行:第一步:十进制转化为二进制的过程中,就是每次除2取余,并存放在数组中。第二步:输入的数字在0-32767之间。第三步:for循环(从0到14位,最高位为符号位)。第四步:for循环倒叙输出,存放在数组中即为转化后的值。第五步:为了美观,每隔四个数字打印一个空格。代码如下:#include <stdio.h> ...原创 2018-04-19 17:33:29 · 16523 阅读 · 1 评论 -
c语言--小球下落问题
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高?思路先行:第一步:先定义初始高度为100米,初始距离为100米。第一次反弹:h=100/2;总距离:s=100+50*2;第二次反弹:h=50/2;总距离:s=s+25*2;一次类推......第二步:求第十次反弹高度,也就是把第九次高度求出来,除以2,即为第十次的反弹高度。代码如下...原创 2018-04-27 23:04:36 · 9782 阅读 · 1 评论 -
c语言实例--巧分苹果
问题:一家农户以果园为生,一天,父亲推出一车苹果,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆苹果分完,每个人分到的苹果个数都不相同。他说:“老大,把你分到的苹果的1/8给老二,老二拿到后,连同原来的苹果分1/7给老三,老三拿到后,联通原来的苹果的1/6给老四,以此类推,最后老六拿到后连同原来的苹果分1/3给老大,这样,你i没每个人分到的苹果就一样多了。”问兄弟6人原先各...原创 2018-05-18 22:38:09 · 4958 阅读 · 0 评论 -
c语言实例--老师巧分糖果
问题:幼儿园老师将糖果平均分成若干份,让学生按任意次序上来领,第一个来领的,得分一份加上剩下的十分之一 第二个上来领,得到2份和剩下的十分之一,依次……知道最后一个上来分完为止。思路先行:第一步: 先用数学思维考虑本题,设总共有n份糖果,分别设第一个学生得到的份数为sum1,第二个学生得到的份数为sum2。第二步: 第一个学生得到的份数为:sum1=1 + (n-1)*1/10; 化简后为 su...原创 2018-05-26 00:06:17 · 4466 阅读 · 0 评论 -
c语言实例--ip地址形式输出
问题:输入一个32位的二进制的数,每8位转化为一个十进制的书,将其转化为十进制的ip地址。思路先行:第一步:总体思路:输入二进制数,然后每八个为一个小单位分开,形成一个对应的十进制数,最终形成四个ip数。第二步:分别定义存放ip的数组,存放二进制的数组,把二进制数用字符串的形式存放。第三步:每八个二进制数转化为一个十进制数字,这里调用转化函数bin_dec()。第四步:二进制转化为十进制函数:递归...原创 2018-06-20 00:02:48 · 9501 阅读 · 0 评论 -
PATB1001:害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研...原创 2019-03-05 17:05:54 · 331 阅读 · 0 评论 -
PAT-B 1032. 挖掘机技术哪家强
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过10^5的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没...原创 2019-03-05 19:59:13 · 280 阅读 · 0 评论 -
PAT-B 1036. 跟奥巴马一起编程(15)
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。输出格式:输出由给定字符C画出的正方形。但是注意到行间距...原创 2019-03-05 21:24:44 · 293 阅读 · 0 评论 -
PAT-B 1022. D进制的A+B (20)
输入两个非负10进制整数A和B(<=2^30-1),输出A+B的D (1 < D <= 10)进制数。输入格式:输入在一行中依次给出3个整数A、B和D。输出格式:输出A+B的D进制数。输入样例:123 456 8输出样例:1103思路:进制的转化,题目要求是从十进制转化为2进制或者8进制总体思路:除商、取余、倒排。代码:#include <cst...原创 2019-03-06 15:32:17 · 227 阅读 · 0 评论 -
PAT-B 1004. 成绩排名 (20)
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为第1行:正整数n第2行:第1个学生的姓名 学号 成绩第3行:第2个学生的姓名 学号 成绩... ... ...第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成...原创 2019-03-13 21:48:19 · 192 阅读 · 0 评论 -
PAT-B 1028. 人口普查(20)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数N,取值在(0, 10^5];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)...原创 2019-03-14 17:02:00 · 199 阅读 · 0 评论 -
PAT-B 1023. 组个最小数 (20)
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔...原创 2019-03-07 14:06:36 · 224 阅读 · 0 评论 -
PAT-B 1041. 考试座位号(15)
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的...原创 2019-03-13 20:56:45 · 930 阅读 · 0 评论