因为你只是判断了一下-1,然后就直接把你的s2输出了
by Wuyanru @ 2021-06-01 13:07:47
@[gangBaDie](/user/445897) 对于每个字符,要考虑相等,大于,小于三种情况。
```cpp
for(int i=0;i<n;i++){
if(a[i]==b[i]){
ans[i]=a[i];
}
else if(a[i]>b[i]){
ans[i]=b[i];
}
else{
std::cout<<"-1";
}
}
```
by Yikara @ 2021-06-01 13:14:26
好的
by gangBaDie @ 2021-06-01 21:02:10
```
# include <stdio.h>
# include <stdlib.h>
void fun(char * s1, int n1, char * s2, int n2)
{
int i, k;
char s3[100];
for(i=0; i<n1; i++)
{
if((s1[i]==s2[i]))
s3[i] = rand()%('z'-s1[i])+s1[i];
else if(s1[i]>s2[i])
s3[i] = s2[i];
else
{
k=0;
printf("%d\n", -1);
}
}
if(k!=0)
for(i=0; i<n1; i++)
printf("%c",s3[i]);
printf("\n");
}
int main(void)
{
int n;
char s1[100], s2[100];
scanf("%d", &n);
scanf("%s", s1);
scanf("%s", s2);
fun(s1, n, s2, n);
return 0;
}
```
那这个呢,这个也过不了www
by gangBaDie @ 2021-06-01 21:08:54
~~我个菜鸡,这代码都看不懂~~
by 林子浩 @ 2021-06-09 20:32:18
应该要存放空字符吧
by Jianxin7180 @ 2022-01-27 17:40:39