社区讨论
求助,为什么#7输出结果都一样但就是过不了?
P1098[NOIP 2007 提高组] 字符串的展开参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ygcex
- 此快照首次捕获于
- 2025/11/21 05:40 4 个月前
- 此快照最后确认于
- 2025/11/21 05:40 4 个月前
其他测试点都过了,唯独#7怎么也过不了
#7输入数据:
CPP2 8 2
--09-8-w-er-7h-08w-e7-hc-r890-q7w-eh-rc98-07-q8-ewr-8h-c-8-294-5-dsf--k-h-2-48-3k-h-sd-fq-a-
输出数据:
CPP--09-8-w-er-7h-08w-e7-hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-23333333348-3k-hRRRRRRRRQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIsdEEEEEEEEfq-a-
我的代码(有点长,请见谅):
CPP#include<iostream>
#include<string.h>
using namespace std;
int p1,p2,p3;
void calculate(char a[])
{
cout<<a[0];
for(int i=1;a[i]!='\0';i++)
{
if(a[i]=='-')
{
if(a[i-1]>=a[i+1])
{
cout<<a[i]<<a[i+1];
i++;
continue;
}
if(a[i-1]+1==a[i+1])
{
cout<<a[i+1];
i++;
continue;
}
if(a[i-1]<a[i+1]&&((a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='0'&&a[i+1]<='9')||(a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z')))
{
switch(p1)
{
case 1:
{
switch (p3)
{
case 1:
{
for(int k=a[i-1]+1;k<a[i+1];k++)
{
char K=(char)k;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
break;
}
case 2:
{
for(int k=a[i+1]-1;k>a[i-1];k--)
{
char K=(char)k;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
break;
}
}
break;
}
case 2:
{
switch (p3)
{
case 1:
{
if(a[i-1]>='a')
{
for(int k=a[i-1]+1;k<a[i+1];k++)
{
char K=(char)k-32;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
}
else
{
for(int k=a[i-1]+1;k<a[i+1];k++)
{
char K=(char)k;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
}
break;
}
case 2:
{
if(a[i-1]>='a')
{
for(int k=a[i+1]-1;k>a[i-1];k--)
{
char K=(char)k-32;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
}
else
{
for(int k=a[i+1]-1;k>a[i-1];k--)
{
char K=(char)k;
for(int j=0;j<p2;j++)
{
cout<<K;
}
}
}
break;
}
}
break;
}
case 3:
{
for(int k=a[i-1]+1;k<a[i+1];k++)
{
for(int j=0;j<p2;j++)
{
cout<<'*';
}
}
break;
}
}
}
else cout<<a[i];
}
else cout<<a[i];
}
}
int main()
{
cin>>p1>>p2>>p3;
char a[101];
cin>>a;
calculate(a);
return 0;
}
求大佬指点qwq
回复
共 3 条回复,欢迎继续交流。
正在加载回复...