給定一個長度不超過10000的、僅由英文字母構(gòu)成的字符串。請將字符重新調(diào)整順序,按GPLTGPLT....
這樣的順序輸出,并忽略其它字符。當(dāng)然,四種字符(不區(qū)分大小寫)的個數(shù)不一定是一樣多的,若某種字符已經(jīng)輸出完,則余下的字符仍按GPLT
的順序打印,直到所有字符都被輸出。
輸入格式:
輸入在一行中給出一個長度不超過10000的、僅由英文字母構(gòu)成的非空字符串。
輸出格式:
在一行中按題目要求輸出排序后的字符串。題目保證輸出非空。
輸入樣例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
輸出樣例:
GPLTGPLTGLTGLGLL
解題思路:
- 首先,我們輸入一個字符串a(chǎn)。
- 然后,我們使用一個循環(huán)遍歷字符串a(chǎn)的每個字符,并統(tǒng)計字符’g’、‘p’、'l’和’t’的數(shù)量。
- 接下來,我們計算總字母數(shù)量n,即p、g、l和t的數(shù)量之和。
- 最后,我們使用一個循環(huán)來輸出字母的序列,直到所有字母都被輸出。
- 我們每次輸出一個字母之后,相應(yīng)字母的數(shù)量減一,然后將變量x設(shè)置為1,表示該輪循環(huán)應(yīng)繼續(xù)。
- 當(dāng)所有字母的數(shù)量都變?yōu)?時,即x等于0,循環(huán)結(jié)束。
?文章來源:http://www.zghlxwxcb.cn/news/detail-546820.html
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n, m, g = 0, p = 0, l = 0, t = 0, x;
int i, j, k = 0;
char a[10001];
gets(a);
m = strlen(a);
// 統(tǒng)計每個字母的數(shù)量
for (i = 0; i < m; i++)
{
if (a[i] == 'g' || a[i] == 'G')
g++;
if (a[i] == 'p' || a[i] == 'P')
p++;
if (a[i] == 'l' || a[i] == 'L')
l++;
if (a[i] == 't' || a[i] == 'T')
t++;
}
n = p + g + l + t;
// 輸出每個字母的序列
for (i = 0; x != 0;)
{
x = 0;
if (g != 0)
{
printf("G");
g--;
x = 1;
}
if (p != 0)
{
printf("P");
p--;
x = 1;
}
if (l != 0)
{
printf("L");
l--;
x = 1;
}
if (t != 0)
{
printf("T");
t--;
x = 1;
}
}
return 0;
}
?文章來源地址http://www.zghlxwxcb.cn/news/detail-546820.html
到了這里,關(guān)于PTA——L1-023 輸出GPLT(c語言)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!