自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 PAT乙级 1033 旧键盘打字

#include<stdio.h>#include<string.h>#include<ctype.h>int main(){ char bad[100001]; gets(bad); char a[100001]; scanf("%s",a); int shift=1; for(int m=0;m<strlen(bad);m++){ if(bad[m]=='+'){ s.

2021-09-13 21:00:18 139

原创 PAT乙级C语言 1029 旧键盘

注意点:实际输入的文字串结束而应该输入的文字串未结束时,应该输入的文字串后面可能还会有一些坏键。推荐答案:PAT乙级1029. 旧键盘(C语言)_对方北方-CSDN博客#include<stdio.h>#include<string.h>int search(char*a,int m,char*c,int n){ if(a[m]>='a'&&a[m]<='z'){ a[m]=a[m]-('a'-'A');

2021-09-03 15:19:06 183 1

原创 PAT乙级C语言 1028 人口普查

思路判断是否符合要求并计数,把符合的结构输入另一个数组,对该数组进行qsort排序,然后输出第一个和最后一个元素里的相关成员推荐我觉得这个写的很好(呜呜呜我写了七十几行人家写二十几行就好了,差距好大)PAT乙级1028. 人口普查(C语言)_对方北方-CSDN博客#include<stdio.h>#include<stdlib.h>typedef struct{ char name[10]; int year,month,date;}cit

2021-09-02 20:55:17 400

原创 PAT乙级C语言 1027 打印沙漏

思路1.易得沙漏符号总数为2(n^2)-12.每行个数是2n-13.用sign判断每行输出空格数#include<stdio.h>int main(){ int N; char sym; scanf("%d %c",&N,&sym); int n,i; int sign=0; n=0; while(2*n*n-1<=N){ n++; } for(i=n-1;i>=1;i-

2021-09-01 15:33:50 118

原创 PAT乙级C语言 1026 程序运行时间

技巧:1.round函数的使用(注意括号里是double)2.%02d的使用#include<math.h>#include<stdio.h>int main(){ int a,b; scanf("%d%d",&a,&b); int c,d,f,time; time=round((b-a)*1.0/100); c=time/3600; d=time/60%60; f=time%60; p

2021-09-01 15:01:07 95

原创 PAT乙级 C语言 1024 科学计数法

注意点:俺没有注意到个位数是1位……且可以用"%[^E]E%d"输入,要不可以省一堆压根没用的东西……但我懒得改了我觉得这个写的很好PAT乙级1024. 科学计数法(C语言)_对方北方-CSDN博客#include<stdio.h>#include<stdlib.h>int sort(char*a,int t,int p,int q);int main(){ char a[100000]; scanf("%s",a); int m,n,p,q;

2021-08-31 15:51:41 219

原创 PAT乙级C语言 1023 组个最小数

#include<stdio.h>int main(){ int a[10]; int i; for(i=0;i<10;i++){ scanf("%d",&a[i]);//输入每个数字对应的个数 } for(i=1;;i++){//避开0,从1开始遍历找到第一位数 if(a[i]!=0){//条件是这个数的个数不是0 printf("%d",i); a[i].

2021-08-30 16:53:21 94

原创 PAT乙级 1017 A除以B

思路从高位开始做除法,余数保留,下一轮开始时被除的数为本位+上一轮余数*10,依次类推。优化点我是用了一个数组来储存字符串数组转成的int,看了别人的代码才想到可以即时-‘0’;同样,我用了一个数组来储存商,其实可以一位一位即时输出。注意点注意商等于0的情况代码#include<stdio.h>int main(){ char a[1001]; int B; int b[1000]; scanf("%s%d",a,&B

2021-08-27 20:38:20 69

原创 PAT乙级 1016 部分A+B

蛮简单的一题,就是我一开始看题目限制A、B<10^9,设了长度1000000000的字符串数组……结果当然是段错误了,改成100000就没问题了#include<stdio.h>int search(char a[],int da);int main(){ char a[10000]; char b[10000]; int da,db,pa,pb; scanf("%s",a); scanf("%d",&da); scanf("%s",

2021-08-27 19:35:19 62

原创 PAT乙级 1015 德才论

一开始用以前排序用的交换排序?(我也不知道怎么称呼)写了一个版本,结果运行超时了。在论坛里搜索以后才知道要用qsort函数具体是看了这个:C语言 —— PAT 【1015. 德才论 (25分)】 (运行超时——快速排序)_小吴同学真棒的博客-CSDN博客还有这个:快速排序---(面试碰到过好几次)_nrsc-CSDN博客_快速排序但我写的时候是学第一个自己写了个qsort函数,但看了其他人的代码发现好像是一个头文件里包含着的标准函数,可以直接使用,那......以后再用用看吧(我真的好笨

2021-08-27 18:51:21 87

原创 PAT乙级 1014 福尔摩斯的约会(超级白痴版)

首先,我真的超级小白,连用ASCII码判断一个字符在不在一个范围里都不懂.....硬是凑了个数组做遍历来判断,于是代码巨长,但因为逻辑没啥错最后还是通过了......(尽管效率要多低有多低)我一开始是测试点1、2、4没通过,原因是我没注意hour和minite一样也必须两位数字输出,例如1点要输出01。最后推荐两个我看得懂的C语言版本的代码(有一些我还没学到的什么cout、>>我真的看不懂QAQ,希望未来的我能回来嘲笑现在的我)1:PAT乙级1014 福尔摩斯的约会(C语言),测试点

2021-08-26 16:09:31 224

原创 PAT乙级C语言1013 数素数

思路:其实一上来最先想到的还是数组,不过我不太喜欢数组需要在编译前被确定大小这点,以及不想浪费内存,所以选择了逐个输出的方法。用到了1007里判断一个数是否是素数的函数,果然这种套路就是好用!!要注意判断的时候要用sqrt(x)也就是平方根去判断,要不测试点4会运算超时哦还有一些注意的点就是输空格的套路和换行的套路吧,作为小白别的我也不太懂了#include<stdio.h>#include<math.h>int a(int n);int main(){

2021-08-23 22:02:46 129

原创 PAT乙级C语言1012 数字分类

#include<stdio.h>int main(){ int n; int a1=0; int a2=0; int a3=0; double a4=0.0; int a5=0; scanf("%d",&n); int a[999]; int m; int sign=1; int cnt1=0; int cnt2=0; int cnt3=0; int cnt4=0; int cnt5=0; for(int i=0;i<n.

2021-08-23 14:20:26 95

原创 PAT乙级C语言1011 A+B和C

#include<stdio.h>int main(){ long n,a,b,c;//int范围是(-2^31,2^31-1),long范围是(-2^64,2^64-1) scanf("%ld",&n);//long对应词是%ld for(long i=1;i<=n;i++){ scanf("%ld %ld %ld",&a,&b,&c); if(a+b>c){ printf("Case #%ld: true\n",i);.

2021-08-23 14:19:00 81

原创 PAT乙级C语言1010 一元多项式求导

#include<stdio.h>int main(){ int a[99][2]; char b; int i=0; for(;b!='\n';i++){ for(int m=0;m<2;m++){ scanf("%d%c",&a[i][m],&b);//%c是输入字符 } }//输入数据 int n; if(a[0][1]==0){ printf("0 0"); }else{ for(n=0;n<i;n++){ .

2021-08-23 14:17:32 93

原创 PAT乙级C语言1009 说反话

#include<stdio.h>#include<string.h>int main(){ char a[999]; scanf("%[^\n]s",a);//scanf()开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表 //符(tab)或者换行符(newline)处停止读取。 //可以使用 scanf("%[^\n]s",a); 来解决问题。其中“%[^\n]”是说明只有在读 .

2021-08-22 16:28:21 124

原创 PAT乙级C语言1008 数组循环右移问题

#include<stdio.h>int main(){ //输入数据 int a[999]; int n; scanf("%d",&n); int m; scanf("%d",&m); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } m=m%n; //全体右移 for(int i=n-1;i>=0;i--){ a[i+m]=a[i]; } //把右边多出来的填入空格 .

2021-08-22 16:25:14 103

原创 PAT乙级C语言1007 素数对猜想

#include<stdio.h>#include<math.h>int a(int i);int main(){ int n; scanf("%d",&n); int cnt=0; for(int i=2;i<=n;i++){ if(a(i)==1&&a(i-2)==1&&a(i-1)!=1){ cnt++; } } printf("%d",cnt); return 0;}int a(int.

2021-08-22 16:23:35 90

原创 PAT乙级C语言1006 换个格式输出整数

#include<stdio.h>int main(){ int n; scanf("%d",&n); int a,b,c; a=n%10; n/=10; b=n%10; n/=10; c=n; for(int i=0;i<c;i++){ printf("B"); } for(int i=0;i<b;i++){ printf("S"); } for(int i=1;i<=a;i++){ printf("%d",i); }.

2021-08-22 16:22:00 81

原创 PAT乙级C语言1005 继续(3n+1)思想

#include<stdio.h>void da(int*b,int r);int main(){ //输入数据 int n; scanf("%d",&n); int a[999]; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } //记录重复的数的下标 int t=0; int b[999]; int p; for(int i=0;i<n;i++){ p=a[i]; for(int.

2021-08-22 16:20:16 119

原创 PAT乙级C语言1004 成绩排名

#include<stdio.h>int main(){ struct grade{ char name[11]; char number[11]; int grade; }; struct grade grades[999]; int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%s",&grades[i].name); scanf("%s",&grades[i].numb.

2021-08-22 16:16:12 147

原创 PAT乙级C语言1003 我要通过!

不得不说这题我也卡了好久,是看了一个大佬的解析才恍然大悟的,a*b=c这个等式非常重要#include<stdio.h>int judge(char str[]);int main(int argc,char const*argv[]){ char str[999][999]; int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%s",&str[i]); } int x; for(int

2021-08-22 16:14:31 106

原创 PAT乙级C语言1002 写出这个数

#include<stdio.h> int main(int argc,char const*argv[]){ //得出各位数字的和 char str[999]; int sum=0; int i = 0; scanf("%s",str); do{ sum+=str[i]-'0'; i++; }while(str[i]!='\0'); //得到这个数的数组 int n=0; int temp[999]; i=0; while(sum){.

2021-08-22 16:07:25 109

原创 PAT乙级C语言1001 害死人不偿命的(3n+1)猜想

#include<stdio.h>int main (int argc,char const *argv[]){ int n; int count = 0; scanf("%d",&n); for(;n!=1;count++){ if(n%2==0){ n/=2; }else{ n=(3*n+1)/2; } } printf("%d",c.

2021-08-22 16:04:08 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除