
PAT
习
叶尔孤柏
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【PAT B1033】旧键盘打字(C语言)
#include <stdio.h>#define MAX_LEN 100000#define GOOD 1#define BAD 0int len;int key[128];int output[MAX_LEN];void read_first_line ();void read_second_line_and_print ();/*----------...原创 2020-04-15 15:24:31 · 271 阅读 · 0 评论 -
【PAT B1032】挖掘机技术哪家强(C语言)
#include <stdio.h>#define MAX_NUM 100000int main (){ int N; int excavator[MAX_NUM] = {0}; int index, score; int i, best;// FILE *fd = fopen ("data.txt", "r"); scanf ("%d", &N); f...原创 2020-04-15 09:51:55 · 303 阅读 · 0 评论 -
【PAT B1031】查验身份证(C语言)
#include <stdio.h>#define LEN_ID 18 /* the length of id */#define MAX_N 100 /* 最大的人数 */#define WRONG_ID 1#define RIGHT_ID 0int wrongid;void get_jud_id (int id[MAX_N][LEN_ID]);void print...原创 2020-04-15 09:28:52 · 690 阅读 · 0 评论 -
【PAT B1029】旧键盘(C语言)
#include <stdio.h>#include <string.h>#define GOOD 2#define BAD 1#define MAX_STRING 81char input[MAX_STRING];char test[MAX_STRING];int len;int read_input ();int deal_result ();i...原创 2020-04-04 08:48:46 · 301 阅读 · 0 评论 -
【PAT B1027】打印沙漏(C语言)
好玩/* * 2*n-1=len; 等差数列求和公式 n*(1+n)/2 * 2*3-1=5 所以 n*(1+len)/2 = n*n; 2*n*n-1 = 沙漏总个数; * 2*2-1=3 所以 len = 2*n-1; len 是第一行要输出的个数 * 2*1-1=1 * 2*2-1=3 * 2*3-1=5 * 2*n-1=len; */#in...原创 2020-04-03 10:49:20 · 462 阅读 · 0 评论 -
【PAT B1026】程序运行时间(C语言)
#include <stdio.h>#define CLK_TCK 100int main(){ int C1, C2; int hh, mm; int s; C1 = C2 = mm = 0; scanf("%d %d", &C1, &C2); s = (C2 - C1 + 50)/CLK_TCK; printf ("%02d:", s/360...原创 2020-04-02 10:05:01 · 186 阅读 · 0 评论 -
【PAT B1028】人口普查 (C语言)
1: 是零个合理的人数,直接输出零,末尾不要有空格2:是一个合理的人直接将这个人输出两次, 他即使最年长的也是最年轻的#include <stdio.h>#include <stdlib.h>#define RIGHT 1#define WRONG 2#define FIRST 3#define SECOND 4#define MAX_NAME 6typ...原创 2020-04-01 11:07:10 · 621 阅读 · 0 评论 -
【PAT B1025】反转链表 (C语言)
我喜欢事实。做为一个菜鸟,我用两个数组实现,第一个数组的下标就是该结点的地址,里面再存数据和下一结点的地址。用另外一个数组反向存储,即数组下标存储地址,里面存储的信息是它上一个结点的地址。剩下的就是慢慢找够K个反向输出,找输出。下面是粗糙的代码。#include <stdio.h>#define MAX_N 100001typedef struct node{ int a...原创 2020-03-21 11:17:15 · 276 阅读 · 0 评论 -
【PAT B1024】科学计数法(C语言)
这一位大佬的代码很厉害这是地址要保留所有有效数字,若是正数,前面的正号不输出。#include <stdio.h>#define MAX_A 10000 char A[MAX_A];int pos_E; /* E的位置,也是数字A除了指数部分外的末尾 */int e; /* 指数exponent */char flag_E; /* 指数的正负...原创 2020-03-20 08:36:55 · 1203 阅读 · 0 评论 -
【PAT B1023】 组个最小数(C语言)
#include <stdio.h>#define MAX 10int main(){ int a[MAX] = {0}; int i; for(i = 0; i < MAX; ++i){ scanf("%d", &a[i]); } for(i = 1; i < MAX; ++i){ if(a[i] != 0){ printf("%d"...原创 2020-03-19 08:14:04 · 597 阅读 · 0 评论 -
【PAT B1022】D进制的A+B (C语言)
#include <stdio.h>#define MAX 31 /* 有一个测试点要31数字 careful */int arr_D[MAX]; /* D进制数用数组装 */int get_arr_D();void print_D(int i);/************************ 读入A和B,并计算D **********************...原创 2020-03-18 19:54:10 · 267 阅读 · 0 评论 -
【PAT B1021】个位数统计(C语言)
#include <stdio.h>#define MAX 10#define MAX_N 1000int n[MAX];void read_N();void print_result();/****************************** 读入N ************************/void read_N(){ int c, i;...原创 2020-03-18 16:54:53 · 447 阅读 · 0 评论 -
【PAT B1020】月饼 (C语言)
注意一下,当需求大于所有库存的情况#include <stdio.h>#define MAX_N 1000 /* 月饼最大种类数 */int N; /* 种类 */float demand; /* 需求量 */typedef struct mooncake{ float inventory; /* 库存量 */ float price; /* ...原创 2020-03-18 16:31:48 · 838 阅读 · 0 评论 -
【PAT B1018】锤子剪刀布 (C语言)
int N;int C_jia; /* 如果甲赢且甲等于C,给C_jia自增1 以下类似 */int J_jia;int C_yi;int J_yi;int jia_win;int pingju;void read();void print_result();char max_cjb(int c, int j, int b);/*********************...原创 2020-03-17 19:02:55 · 261 阅读 · 0 评论 -
【PAT B1017】A除以B (C语言)
两个方案,第一边除一边输出。第二个是除完得商,先保存,再输出。思路用数组储存A(A 是不超过 1000 位的正整数)可能很大。按照基本除法一位一位除,得商输出#include <stdio.h>#define MAX_A 1000int A[MAX_A];int B; /* 除数 */int num; /* A 被除数有多少位 */vo...原创 2020-03-17 15:24:03 · 1172 阅读 · 0 评论 -
【PAT B1016】部分A+B (C语言)
对不起,有一个测试点过不去;我看很多人都直接将AB定义成Int 型,或者long long 型,但是题目说0 < A,B < 10^10, 要是测试数组A是个99位的整数,那不就存不下了吗?#include <stdio.h>int A[10];int B[10];int DA;int DB;void read_AB();int print_PAPB()...原创 2020-03-16 16:38:24 · 385 阅读 · 0 评论 -
【PAT B1015】德才论 (c语言)//答案正确
所有的错误只是为了正确,如果不是这个结果,那就是遗憾这道提做了很长时间,我不会用什么函数,自能自己徒手写代码,每一步必须清楚,不然就会有错。注意:第三类是德分不低于才分,即德分>=才分思路:用两个长度为最大人数(N)的数组,第一个数组储存第一类和第二类考生,第一类考生从数组最左端开始储存,第二类考生从数组最后端开始储存,第三、四类一样,也这样储存。然后用快速排序,之后输出。数组的...原创 2020-03-16 07:46:00 · 609 阅读 · 0 评论 -
【PAT B1014】福尔摩斯的约会(C语言)
认识你们所有人,是多么荣幸我希望将来的你是我见过最优秀的女子,没有之一一根网线,能放宽眼睛,能拉长耳朵,同时非礼也视,非礼也听,心神不宁人的光明胜过太阳,人的温柔明朗超过圆月,人的黑暗胜过一切黑暗,人情的冰冷超过一切严寒我们都想不起来我们的祖先是怎样生活的#include <stdio.h>#include <string.h>#define MAX_STR...原创 2020-03-10 11:36:55 · 382 阅读 · 0 评论 -
【PAT B1012】数字分类 (C语言)
#include <stdio.h>#define MAX_N 1000 /* 最多输入1000个数 */ #define NON_EXIST 32766 /* A1-A5 不存在*/#define ADD 1 /* A2要交错加减 */#define MINUS 0 /* A2要交错加减 *//* 将lim个数读入数组rea...原创 2020-03-08 18:50:10 · 338 阅读 · 0 评论 -
【PAT B1011】A+B 和 C (C语言)
#include <stdio.h>int main(){ signed long long int A, B, C; int T; scanf("%d", &T); for(int i = 0; i < T; ++i){ scanf("%lli %lli %lli", &A, &B, &C); if( (A + B) &...原创 2020-03-08 15:37:28 · 299 阅读 · 0 评论 -
【PAT B1010】一元多项式求导 (C语言)
不得不承认这来之不易思想:将分别对输入的系数和指数计算,并保存到结构体中,用链表连起来,输出,细节都注释了,不全面的话请谅解#include <stdio.h>#include <stdlib.h>/* 将要输出的系数和指数用这个记录 */typedef struct U_p{ /* Unary_polynomial 一元多项式 */ in...原创 2020-03-08 12:18:35 · 528 阅读 · 0 评论 -
【PAT B1009】说反话 (C语言)
世人染于眼前之微渺,所以昧乎未见之大观第一次有点小错误,是没有考虑只有一个单词输入的情况第一次:#include <stdio.h>#define MAX_C 80 /* 最大字符串长度 *//* 得到字符串, 且返回长度 */int get_str(char s[]){ int c, i; for(i = 0; (c = getchar()) != ...原创 2020-03-07 11:06:08 · 737 阅读 · 0 评论 -
【PAT B1008】 数组元素循环右移问题 (C语言)
在此有忧无乐之中,须寻一无忧之乐第一没有考虑:若移动的位数大于总数的个数,比如说有6的数字,向右移动8个位置,实际就是移动(8%6)= 2 个位置;#include <stdio.h>#define MAX_N 100 /* 数组所存个数 */void get_array(int s[], int lim){ int i; for(i = 0; i...原创 2020-03-07 09:41:45 · 256 阅读 · 0 评论 -
【PAT B1007】素数对猜想 (C语言)
这是第一次有点错误的#include <stdio.h>#define MAX_n 100000 /* 素数的范围 */#define YES 1 /* 是素数 */ void get_primes(int s[], int lim){ int i, j; for(i = 2; i < lim; ++i){ for(j = 2; j &l...原创 2020-03-06 15:54:11 · 421 阅读 · 0 评论 -
【PAT B1006】换个格式输出整数 (C语言)
鱼生未尽我无缘岂望非时的巨鲜?命终总是虫千足自向盲人鞋底牵#include <stdio.h>#define MAX 3 /* 输入的数有多少位 */void get_BSn(int s[], int n){ int i, j; j = 100; for(i = 0; i < MAX; ++i){ s[i] = n / j; n %...原创 2020-03-06 10:17:02 · 339 阅读 · 0 评论 -
【PAT B1005】继续(3n+1)猜想 (C语言)
Because we share one sunBecause we share one moonBecause we share every star int the whole skyBecause we share one phrase so profound#include <stdio.h>#define MAX_K 101#define YES 1#d...原创 2020-03-06 09:25:26 · 317 阅读 · 0 评论 -
【PAT B1004】成绩排名(C语言)
认真、朴素、真实的活着,让他们成为好的见证,Because we share something so profound; Because we share one phrase so profound!总是差几分,人生难完美啊,这就是继续的理由吗?#include <stdio.h>#include <stdlib.h>#define MAX 10typ...原创 2020-03-05 17:11:33 · 295 阅读 · 0 评论 -
【PAT B1002】写出这个数(C语言)
忧何有又,贵尊么这人乐亦法减做,乐法加做谢代陈新若,也然自减加实现是亦去远哪里出错了?有人会看吗?看了会告诉我吗?#include <stdio.h>/* 计算输入的数字之和,并返回这个数 */int get_num(){ int c, sum; sum = 0; while((c = getchar()) != '\n') //计算数 sum += ...原创 2020-02-29 11:58:50 · 425 阅读 · 0 评论 -
【PAT B1001】害死不偿命的(3n+1)猜想(C语言)
#include <stdio.h>int main(){ int n, cut_step = 0; scanf("%d", &n); while( n != 1){ if(n % 2 != 0) n = (3 * n + 1); n /= 2; ++cut_step; } printf("%d", cut_step);}原创 2020-02-28 15:55:21 · 194 阅读 · 0 评论 -
【PAT A1059】Prime Factors(C语言)
思路:1:让输入的数(i)从第一个素数(j)除,能除净,记录j。若不能到第三步2: i = i / j;;继续第一步3: 将下一个素数赋值给j;继续第一步上面那个错误是当输入1时不能正确输出,改了一下#include <stdio.h>#include <stdlib.h>#define YES 1#define NO 0typedef st...原创 2020-02-27 21:23:15 · 395 阅读 · 0 评论 -
【PAT B1013】 数素数(C语言)
为什么运行超时?#include <stdio.h>#define YES 1#define NO 2#define MAX 100000int isprime(int i){ int j; for(j = 2; j <= i / 2; ++j) if(i % j == 0) return NO; return YES; }int ma...原创 2020-02-27 16:19:15 · 584 阅读 · 0 评论 -
【PAT B1019】数字黑洞(C语言)
生亦非生,死亦非死`思路:(1)用数组array[10]记录所给的四位数有哪几个数;(2)向左扫描,求的大数(3)向右扫描,求得小数(4)循环#include <stdio.h>int main(){ int N; scanf("%d", &N); int array[10]; int num_1, num_2; int i, j, k; in...原创 2020-02-25 19:38:28 · 343 阅读 · 0 评论 -
【PAT B1045】(C语言)
你不难发现,每个人都确实过着自己想要的生活/* 向右扫描一遍,记录当前所指的数,它的左边都比它小 * 向左扫描一遍,记录当前所检索的数,它的右边都比它大*/#include <stdio.h>#define N 100000#define MAX_N 1000000000int main(){ int MAX, MIN; int n; int array[N...原创 2020-02-25 10:44:43 · 161 阅读 · 0 评论