我正在做一個字符數通過char c = cin.get()
。我的輸出的實施例將是: 一個:53 B:32個 C:29 等。什麼原因導致字符數不準確,真的很大?
對於字母表中的一個,我發現了一個大瘋狂9位數字。然後當我使用另一個具有更多字符的輸入文件時,這些數字是6位數字,太大而不準確。這種表型的任何想法?
再次,對不起,這是學期末的緊縮時間。我很感激那裏的任何幫助。
int main (int argc, char *argv[])
{
int count [26] = { };
char alpha [26] = { };
char c;
c = cin.get();
while(!cin.eof())
{
if (isalpha(c))
{
c = tolower(c);
}
count [ c - 'a']++;
alpha [ c - 'a'] = c;
c = cin.get();
}
for (int i = 0; i<26; i++)
{
cout << alpha[i] << ":" << count[i] << endl;
}
} //end main
這裏的輸出:(編輯)
a:224
b:50
c:70
d:20
e:167772180
f:10
g:40
h:66
i:28
這裏的輸入:(編輯)
aaaaaaaaAAAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAAAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBB
製造這些改變,BU t將其仍然「懸」:
c = cin.get();
while(c=cin.get())
{
c = tolower(c);
if (isalpha(c))
continue;
count [ c - 'a']++;
alpha [ c - 'a'] = c;
}
for (int i = 0; i<26; i++)
{
cout << alpha[i] << ":" << count[i] << endl;
}
} //end main
您不應該假定ASCII正在使用中,或者使用'while(!eof())'。改用'while(cin.get(c))'。 – chris
和顯而易見的問題,你輸入所有26對是嗎? –
@KarthikT所有26個字母,一些大寫。但是,每個字母要麼一致地大寫,要麼小寫。 – harman2012