【问题描述】
输入若干个字符串(每个字符串的长度不超过30个字符,字符串总数不超过30),和一个英文字符ch。 要求: - 删除每个字符串中的字符ch(区分大小写),得到新的字符串 - 将新的字符串按照字典逆序排序后输出
【输入形式】
第一行输入英文字符ch
每一行输入一个字符串
最后一行单独输入特殊字符@做为结束标志
【输出形式】
删除ch的新字符串按字典逆序输出
每行输出一个字符串
【样例输入】
e
shangejiao
fudean
teongji
shangcai
@
【样例输出】
tongji
shangjiao
shangcai
fudan
我写的代码:
#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char a[10][30], n, c[10][30];
int i, j, temp, m1 = 0, m2 = 0;
scanf("%c", &n);
for (i = 0; i < 10; i++)
scanf("%s", a[i]);
for (i = 0; i < 10; i++)
{
for (j = 0; j < 30; j++)
{
if (a[i][j]!=n)
{
c[m1++][m2++] = a[i][j];
}
}
}
for (i = 0; i < 10; i++)
{
for (j = 0; j < 30; j++)
{
if (c[i][j] < c[i][i + 1])
{
temp = c[i][j + i];
c[i][i + 1] = c[i][j];
c[i][j] = temp;
}
}
if (c[i][j] == '@')
break;
}
for (i = 0; i < 10; i++)
{
for (j = 0; c[i][j] != '\0'; j++)
{
printf("%c", c[i][j]);
}
printf("\n");
if (c[i][j] == '@')
break;
}
return 0;
}
输出错误