60分求调!!!
查看原帖
60分求调!!!
1148832
LabmemNo_012LzTopic楼主2024/7/23 10:59
#include<stdio.h>
#include<string.h>
#include<math.h>

int pd(char x, char y)
{
	if (x >= 'a' && x <= 'z')
	{
		if (y >= 'a' && y <= 'z')
		{
			return 1;
		}
		else return 0;
	}
	else
	{
		if (y >= '0' && y <= '9')
		{
			return 1;
		}
		else return 0;
	}
}

int main()
{
	int p1, p2, p3;
	char s[105];
	scanf("%d%d%d", &p1, &p2, &p3);
	getchar();
	scanf("%s", s);
	int len, k;
	len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		if (s[i] == '-')
		{
			if (pd(s[i - 1], s[i + 1]));
			else
			{
				printf("-");
				continue;
			}
			k = s[i + 1] - s[i - 1];
			if (k <= 1)
			{
				printf("-");
				continue;
			}
			else
			{
				if (p3 == 1)
				{
					for (int j = 1; j < k; j++)
					{
						for (int z = 1; z <= p2; z++)
						{
							if (s[i - 1] >= 'a' && s[i - 1] <= 'z')
							{
								if (p1 == 3)printf("*");
								else if (p1 == 1)
								{
									printf("%c", s[i - 1] + j);
								}
								else
								{
									printf("%c", s[i - 1] + j - 32);
								}
							}
							else
							{
								printf("%c", s[i - 1] + j);
							}
						}
					}
				}
				else
				{
					for (int j = 1; j < k; j++)
					{
						for (int z = 1; z <= p2; z++)
						{
							if (s[i - 1] >= 'a' && s[i - 1] <= 'z')
							{
								if (p1 == 3)printf("*");
								else if (p1 == 1)
								{
									printf("%c", s[i + 1] - j);
								}
								else
								{
									printf("%c", s[i + 1] - j - 32);
								}
							}
							else
							{
								printf("%c", s[i + 1] - j);
							}
						}
					}
				}
			}
		}
		else
		{
			printf("%c", s[i]);
		}
	}
	return 0;
}
2024/7/23 10:59
加载中...