我試圖解決一個問題。我需要計算字串中出現最多的元音。輸入來自用戶。我可以計算字串中的元音,但如何計算字串中大部分時間出現的元音。
這是我的代碼 -
#include <stdio.h>
int main(){
int vCount = 0; int vA = 0, vE = 0, vI = 0, vO = 0, vU = 0;
字符 str[100]; printf("請輸入字串:"); 獲取(字串);
for(int i=0; i<strlen(str); i )
{
str[i] = tolower(str[i]);
if(str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u')
{
vCount ;
}
if(str[i] == 'a')
{
vA ;
}
else if(str[i] == 'e')
{
vE ;
}
else if(str[i] == 'i')
{
vI ;
}
else if(str[i] == 'o')
{
vO ;
}
else if(str[i] == 'u')
{
vU ;
}
}
printf("\nNumber of vowels: %d\n", vCount);
return 0;
}
uj5u.com熱心網友回復:
您需要定義元音與其出現次數之間的映射。在第一步中計算每個元音出現的次數。獲得此資訊后,只需按降序對值進行排序以首先顯示最常見的值。下面的代碼是在 python 中,但這個想法可以用 C 翻譯:
text = input("Enter a text: ")
vowels_number = {"a": 0, "e": 0, "i": 0, "o": 0, "u": 0}
# Count vowels
for char in text:
if char.lower() in vowels_number:
vowels_number[char.lower()] = 1
# Sort vowels_number in descending order
print(f"Most frequent vowels: {sorted(vowels_number.items(), key=lambda item: item[1], reverse=True)}")
對于 input aaaaAaaeEiIoUu,上面的代碼將輸出:
Most frequent vowels: [('a', 7), ('e', 2), ('i', 2), ('u', 2), ('o', 1)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/403646.html
標籤:
