PAT (Basic Level) Practice
Mirror_Left
这个作者很懒,什么都没留下…
展开
-
PAT (Basic Level) Practice 1024 科学计数法 (20 分)(答案正确)(C语言)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科学计数法表示的实数A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。输出格式:...原创 2021-10-15 22:39:54 · 77 阅读 · 0 评论 -
PAT (Basic Level) Practice 1022 D进制的A+B(C语言)
以下解法部分正确,在测试点3出错。#include<stdio.h>int main(){ int a,b,d,sum,i,j; int x[5000]; scanf("%d %d %d",&a,&b,&d); sum=a+b; for(i=0;sum>0;i++){ x[i]=sum%d; sum/=d; } for(j=0;j<i;j++){ printf("%d",x[i-j-1]); } return 0;}原创 2021-08-19 08:23:32 · 82 阅读 · 0 评论 -
PAT (Basic Level) Practice 1021 个位数统计(C语言)
#include<stdio.h>int main(){ char a[1001]; int b[10],i,n=0; for(i=0;i<10;i++){ b[i]=0; } scanf("%s",a); for(i=0;a[i]!='\0';i++){ b[(a[i]-'0')]++; } for(i=0;i<10;i++){ if(b[i]!=0){ n++; } } for(i=0;i<10;i++){ if.原创 2021-08-18 19:33:39 · 85 阅读 · 0 评论 -
PAT (Basic Level) Practice 1020 月饼(C语言)
#include<stdio.h>void swap(float *a, float *b){ float c = *a; *a = *b; *b = c;}int main(){ int n,d,i,j; float sum=0; scanf("%d %d",&n,&d); float x[1000],y[1000],z[1000];//x 为库存,y为价格,注意是总售价 z为单位质量的价格 for(i=0;i<n;i++){ scanf.原创 2021-08-18 16:04:32 · 106 阅读 · 0 评论 -
PAT (Basic Level) Practice 1019 数字黑洞 (C语言,部分正确)
在测试点2出错。#include<stdio.h>int main(){ int a,i,j,n=0; int x[4],y[4]; scanf("%d",&a); while(a!=6174||n==0){ for(i=0;i<4;i++){ x[i]=a%10; a/=10; } if(x[0]==x[1]&&x[1]==x[2]&&x[2]==x[3]){ printf("%原创 2021-08-18 11:28:04 · 96 阅读 · 0 评论 -
PAT (Basic Level) Practice 1018 锤子剪刀布(C语言)
运用%*c 或%*d 吸收掉回车。C语言怎么用char型读入文件#include<stdio.h>int main(){ int n,i,s=0,p=0,f=0,A[3]={0,0,0},B[3]={0,0,0},max=0; char a,b,*x[3]={"B","C","J"}; scanf("%d%*d",&n); for(i=0;i<n;i++){ scanf("%c %c%*c",&a,&b); if(a=='C'&...原创 2021-08-04 17:42:50 · 50 阅读 · 0 评论 -
PAT (Basic Level) Practice 1017 A除以B(C语言)
易错点:当商的位数>=2时,开头的数不能是0.但是商只有一位数是,开头可以是0.#include<stdio.h>#include<string.h>int main(){ char a[1001]; int b,i,x=0,y=0,z=0; scanf("%s %d",a,&b); int len=strlen(a); for(i=0;i<len;i++) { x=(a[i]-'0')+10*z; y=x/b; z=x-y*b;原创 2021-08-04 15:53:02 · 67 阅读 · 0 评论 -
PAT (Basic Level) Practice 1016 部分A+B(C语言)(错误解答)
#include<stdio.h>#include<string.h>int main(){ char a[10],b[10],d[2];//a[10]为A,b[10]为B,d[0]和d[1]分别是DA和DB int i,k=1,sum=0; scanf("%s %s %s %s",a,&d[0],b,&d[1]); for(i=0;i<strlen(a);i++)/*计算第一串数字*/ { if(a[i]==d[0]) { s.原创 2021-08-04 15:26:35 · 134 阅读 · 0 评论 -
PAT (Basic Level) Practice 1002 写出这个数
#include<stdio.h>#include <string.h> //用字符串才能储存10的100次方 int main(){ char n[102]; int sum=0,i,len,b,j;//len确保求sum时不会加到字符串没有字符的空位置导致出错 scanf("%s",n); len=strlen(n); for(i=0;i<=len-1;i++){ sum+=(n[i]-'0'); } char *a[10]={"ling",".原创 2021-07-30 16:04:16 · 52 阅读 · 0 评论 -
PAT (Basic Level) Practice 1015 德才论(C语言)
超时了,听说要用快速排序减少运算时间。//超时版 //输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;//L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生才有资格被考虑录取;//H(<100),为优先录取线--德分和才分均不低于此线的被定义为"才德全尽",此类考生按德才总分从高到低排序;//才分不到但德分到H线的一类考生属于"德胜才",也按总分排序,但排在第一类考生之后;//德才分均低于 H,但是德分不低于才分的考生属于"才德兼亡"但尚有"德胜才"者,原创 2021-08-02 15:36:20 · 206 阅读 · 0 评论 -
PAT (Basic Level) Practice 1014 福尔摩斯的约会(C语言)
错误答案。这题真TM离谱。分钟那一部分应该如何计算?题目描述得模棱两可。#include<stdio.h>#include<string.h>//3485djDkxh4hhGE//2984akDfkkkkggEdsb//s&hgsfdk//d&Hyscvnm//因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;//第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头//原创 2021-08-02 11:30:12 · 79 阅读 · 0 评论 -
PAT (Basic Level) Practice 1013 数素数(C语言)
#include<stdio.h>#include <math.h>int main(){ int m,n,i,sum=1,t,key; scanf("%d %d",&m,&n); if(sum==m){ printf("2"); if(m!=n){ printf(" "); } } for(i=3;n!=1;i++){/*这里的条件原来是(i=3;1;i++)*/ key=1; t=2; for(t=2;t<=.原创 2021-08-01 17:12:45 · 75 阅读 · 0 评论 -
PAT (Basic Level) Practice 1012 数字分类(C语言)
#include<stdio.h>int main(){ int n,i,x=1,k=0,t=0;//x用于正负交替 ,k用于求平均数 ,t用于判断A2是存在的,哪怕和为0 float a[5]={0,0,0,0,0}; scanf("%d",&n); int b[n]; for(i=0;i<n;i++){ scanf("%d",&b[i]); }//a1 a[0] for(i=0;i<n;i++){ if(b[i]%10==0){ .原创 2021-08-01 16:20:02 · 93 阅读 · 0 评论 -
PAT (Basic Level) Practice 1009 说反话(C语言)
#include<stdio.h>int main(){ int n=0; char a[81][100]; do{ scanf("%s",a[n]); n++; }while(getchar()!='\n'); n--; for(;n>=0;n--){ printf("%s",a[n]); if(n!=0){ printf(" "); } } return 0;}用getchar判断输入是否结束。...原创 2021-08-01 10:26:25 · 85 阅读 · 0 评论 -
PAT (Basic Level) Practice 1011 A+B 和 C(C语言)
#include<stdio.h>int main(){ long a,b,c; int n,i; scanf("%d",&n); int k[n]; for(i=0;i<n;i++){ scanf("%ld %ld %ld",&a,&b,&c); if((a+b)>c){ k[i]=1; }else{ k[i]=0; } } for(i=0;i<n;i++){ printf("Case #%d:.原创 2021-08-01 14:32:12 · 96 阅读 · 0 评论