C++,输出的结果为什么是问号和笑脸?
发布网友
发布时间:2023-07-16 06:42
我来回答
共4个回答
热心网友
时间:2023-07-21 13:37
输出时类型不对,构造成对应的字符和数值类型。
cout<< char('a' + i) <<":"<< int(count[i]) <<endl;追问这样子改前面输出的还是问号,后面的是对了。
追答你都改到了吗,前面char('a' + i) ,后面int(count[i])
热心网友
时间:2023-07-21 13:37
#include <iostream>
#include <cctype>
using namespace std;
int main() {
int count[26] = {0};
char str[100];
int i;
cin.getline(str,100);
for(i = 0; str[i]; ++i) {
if(str[i] >= 'a' && str[i] <= 'z')
++count[str[i] - 'a'];
else if(str[i] >= 'A' && str[i] <= 'Z')
++count[str[i] - 'A'];
}
for(i = 0;i < 26;++i) {
if(count[i] != 0)
cout << (char)(i + 'a') << ": " << count[i] << endl;
}
return 0;
}
热心网友
时间:2023-07-21 13:38
在count[i]前加(int)强制转换一下
修改后:
cout<<str[i]<<":"<<(int)count[i]<<endl;
您的输出是有bug的:
应该为:
for(int i=0;i<26;++i){
if(count[i]>0){
cout<<(char)(i + 'a')<<":"<<(int)count[i]<<endl;
}
}
热心网友
时间:2023-07-21 13:38
char count[26]={0}; 这一句改成int count[26]={0};就是数字了。