题目::https://pintia.cn/problem-sets/994805046380707840/exam/problems/1518581803354341376?type=7&page=0
思路:本题难度不算高,因为题目已经给了很大一部分程序了,比较弄完了,最后调节输出;定义一个ans变量,如果相等就输出其中一个,不等挨个输出就行。
如果没有给出比较感觉题目难度会提升一个档次,因为理解题意有点难度。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100000],b[100000],a1[100000],b1[100000];
int ans=0,i,a2=0,b2=0;
gets(a);//字符串尽量不用scanf 因为gets能忽略空格等scanf忽略不了的。
gets(b);
for (i = 1; i < strlen(a); i++) //题里length改为strlen
{
if (a[i] % 2 == a[i-1] % 2)
{
if(a[i]>a[i-1])//我尝试了一下直接复制题目,好像max不适配,我就写了个if,一个意思。
a1[a2]=a[i];
else a1[a2]=a[i-1];
a2++;
}
}
for (i = 1; i < strlen(b); i++)
{
if (b[i] % 2 == b[i-1] % 2)
{
if(b[i]>b[i-1])
b1[b2]=b[i];
else b1[b2]=b[i-1];
b2++;
}
}
for(i=0;i<strlen(a1);i++)//该比较了,也就是真正你开始写的部分。
{
if(a1[i]!=b1[i])
{ans=1;
break;}//判断相等
}
if(ans==0)
puts(a1);//打1个
else{
puts(a1);//打2个
puts(b1);
}
return 0;
}
- 在字符串中尽量抛弃scanf 大胆用gets puts!