满课一天,做25的时候还疯狂WA,进度可以说是很慢了 哭泣

------------------------------------------------L1-025----------------------------------------------------------

正整数A+B

题的目标很简单,就是求两个正整数AB的和,其中AB都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。

输入格式:

输入在一行给出AB,其间以空格分开。问题是AB不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。

注意:我们把输入中出现的第1个空格认为是AB的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。

输出格式:

如果输入的确是两个正整数,则按格式A + B = 和输出。如果某个输入不合要求,则在相应位置输出?,显然此时和也是?

输入样例1:

 

输出样例1:

 +  = 

输入样例2:

. 

输出样例2:

? +  = ?

输入样例3:

- blabla bla...

输出样例3:

? + ? = ?

------------------------------------------------L1-025----------------------------------------------------------

注解:这道题WA了我很久,直到某节英语课突然通关哈哈哈哈哈,这道题要注意很多东西:

①A和B同时输入,识别为负数则要输出问号

②A和B输入的大小不超过1000,否则要输出问号

③A可以为空,B不为空

④要处理A+B的结果,即要把字符串转为整型

⑤识别数字,如果乱码得输出为问号。

· 代码分块:

  第一步:构建结构体存储A和B的内容及转码int值还有是否合法:

struct T{
char temp[];
int is_empty = ;
int ans = ;
}temp_1,temp_2;

  第二步:对结构体进行审核处理,构建特殊函数对结构体处理:

  这里要注意:千万不能提前把0吃了,因为可能会出现04 08这样的情况,这样是符合题目条件的,输出4+8=12,因为得从sum加和结果判断是否为0,而不是凭输入。

void TempToAns(struct T &t)
{
int i = ;
t.ans = ;
base = ;
if(t.temp[] == ) t.is_empty = ,i = ;
if(t.temp[] == ) t.is_empty = , i = ;
for(int j = strlen(t.temp)-;j>=i;j--)
{
if((''<= t.temp[j]) && (t.temp[j] <= ''))
{
t.ans+=base*(t.temp[j] - );
base*=;
}
else
{
t.is_empty = ;
break;
}
}
if(t.ans > || t.ans <=) t.is_empty = ;
}

  第三步:将一个大数组进行临时存储所有字符,然后循环扫第一个空格,这里千万不能拆成两个输入,不然A无法获取为空值,就会过不了其中一个测试点。

    char temp[];
int up;
int have = ;
cin.getline(temp,);
for(int i = ;;i++)
{
if(temp[i] == ' ' && have == )
{
up = i;
have = ;
continue;
}
if(i>=strlen(temp)) break;
if(have == ) temp_1.temp[i] = temp[i];
else temp_2.temp[i-up-] = temp[i];
}

  第四步,调用结构体处理函数:

    TempToAns(temp_1);
TempToAns(temp_2);

  第五步:进行输出,通过判断temp_1(或temp_2).is_empty是否为1来判断是否输出?

    if(temp_1.is_empty == ) printf("?");
else
{
if(temp_1.ans == )
{
temp_1.is_empty = ;
printf("?");
}
else printf("%d",temp_1.ans);
}
printf(" + ");
if(temp_2.is_empty == ) printf("?");
else printf("%d",temp_2.ans);
printf(" = ");
if(temp_1.is_empty == && temp_2.is_empty == ) printf("%d\n",temp_1.ans+temp_2.ans);
else printf("?\n");

· AC代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<cstring>
using namespace std; struct T{
char temp[];
int is_empty = ;
int ans = ;
}temp_1,temp_2; char temp;
int base;
void TempToAns(struct T &t)
{
int i = ;
t.ans = ;
base = ;
if(t.temp[] == ) t.is_empty = ,i = ;
if(t.temp[] == ) t.is_empty = , i = ;
for(int j = strlen(t.temp)-;j>=i;j--)
{
if((''<= t.temp[j]) && (t.temp[j] <= ''))
{
t.ans+=base*(t.temp[j] - );
base*=;
}
else
{
t.is_empty = ;
break;
}
}
if(t.ans > || t.ans <=) t.is_empty = ;
} int main()
{
char temp[];
int up;
int have = ;
cin.getline(temp,);
for(int i = ;;i++)
{
if(temp[i] == ' ' && have == )
{
up = i;
have = ;
continue;
}
if(i>=strlen(temp)) break;
if(have == ) temp_1.temp[i] = temp[i];
else temp_2.temp[i-up-] = temp[i];
}
TempToAns(temp_1);
TempToAns(temp_2);
if(temp_1.is_empty == ) printf("?");
else
{
if(temp_1.ans == )
{
temp_1.is_empty = ;
printf("?");
}
else printf("%d",temp_1.ans);
}
printf(" + ");
if(temp_2.is_empty == ) printf("?");
else printf("%d",temp_2.ans);
printf(" = ");
if(temp_1.is_empty == && temp_2.is_empty == ) printf("%d\n",temp_1.ans+temp_2.ans);
else printf("?\n");
return ;
}

------------------------------------------------L1-026----------------------------------------------------------

I Love GPLT

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了。

所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。

输入样例:

输出样例:

I

L
o
v
e G
P
L
T

注意:输出的两个空行中各有一个空格。

------------------------------------------------L1-026----------------------------------------------------------

注解 :水题,不知道意义在哪

#include<stdio.h>
#include<string.h> char N[]={"I Love GPLT"}; int main()
{
for(int i = ;i<;i++)
printf("%c\n",N[i]);
return ;
}

注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~

『ACM C++』 PTA 天梯赛练习集L1 | 025-026的更多相关文章

  1. 『ACM C++』 PTA 天梯赛练习集L1 | 001-006

    应师兄要求,在打三月底天梯赛之前要把PTA上面的练习集刷完,所以后面的时间就献给PTA啦~ 后面每天刷的题都会把答案代码贡献出来,如果有好的思路想法也会分享一下~ 欢迎大佬提供更好的高效率算法鸭~ - ...

  2. 『ACM C++』 PTA 天梯赛练习集L1 | 052-053

    今日刷题,水题水题 ------------------------------------------------L1-052------------------------------------ ...

  3. 『ACM C++』 PTA 天梯赛练习集L1 | 048-49

    今日刷题048-049 ------------------------------------------------L1-048---------------------------------- ...

  4. 『ACM C++』 PTA 天梯赛练习集L1 | 040-41

    近期安排 校赛3.23天梯赛3.30华工校赛 4.21省赛 5.12 ------------------------------------------------L1-040----------- ...

  5. 『ACM C++』 PTA 天梯赛练习集L1 | 021-024

    忙疯警告,这两天可能进度很慢,下午打了一下午训练赛,训练赛的题我就不拿过来的,pta就做了一点点,明天又是满课的一天,所以进度很慢啦~ -------------------------------- ...

  6. 『ACM C++』 PTA 天梯赛练习集L1 | 007-011

    真的是忙头晕了,学业.ACM打题.班级活动.自学新东西,哇这充实的大学~ ------------------------------------------------L1-007--------- ...

  7. 『ACM C++』 PTA 天梯赛练习集L1 | 044-45

    记录今日刷题 ------------------------------------------------L1-044--------------------------------------- ...

  8. 『ACM C++』 PTA 天梯赛练习集L1 | 042-43

    记录刷题情况 ------------------------------------------------L1-042--------------------------------------- ...

  9. 『ACM C++』 PTA 天梯赛练习集L1 | 036-037

    这几天比较忙,所以随便做做水题了,得赶紧把英剧搞完啊啊啊啊啊啊 ------------------------------------------------L1-036-------------- ...

  10. 『ACM C++』 PTA 天梯赛练习集L1 | 029-033

    哈哈,今天开始我也是学车人了~ 开始一千多道疯狂刷题~ ------------------------------------------------L1-029------------------ ...

随机推荐

  1. 【疑难杂症01】TypeError: alert is not a function

    一.背景 话说今天在调试js的时候,碰到一个很奇怪的问题,现记录一下.当使用alert()函数弹出提示时,总是报错,你没看错,alert函数报错了. 二.详细说明 当时正在做一个关于告警的页面展示功能 ...

  2. 第十五章——自编码器(Autoencoders)

    自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络.输入数据的这一高效表示称为编码(codings),其维度一般远小于输入数据,使得自编码器可用于降维(查看第八章).更重要的是,自编 ...

  3. RAP, 高效前后端联调框架,接口文档管理工具

    RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据.校验真实接口的正确性,使接口文档成为开发流程中的强依赖.有了结构化的API数据,RAP可以做的更多, ...

  4. Newtonsoft.Json 动态解析 json字符串

    有一个json字符串是动态的,如下面,columns中的数量是不固定的,因此就不能使用反序列化类的方法了: 因此使用这样一种方式,把columns中的所有东西都输出出来: public void Ge ...

  5. Windows Azure系列公开课 - 第一课:认识云计算

    我们正在经历着一个前所未有的变革时代.信息技术的不断创新也推动着各行业的业务创新. 任何规模和类型的组织都需要拥抱最新的IT趋势才能保持竞争力与创新力,并关注自身的业务. 云计算的最终目标是将计算.服 ...

  6. 【Leetcode】【Medium】Add Two Numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  7. JavaScript学习---JavaScript深入学习

    对象的概念 对象分类[3种]:     ECMScript(JS自己的对象), BOM(浏览器对象)    DOM(文档对象,操作HTML的) 11种内置对象:       Array ,String ...

  8. August 06th 2017 Week 32nd Sunday

    No words are necessary between two loving hearts. 两颗相爱的心之间不需要言语. No, I don't think so. Words may be ...

  9. svn使用教程及常见问题解决方案

    使用教程转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本 ...

  10. ZT pthread_detach

    pthread_detach 创 建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出 ...