一道简单的C++题目,求大神解答,谢谢!!!
#include<iostream>#include<cctype>usingnamespacestd;intmain(){intnum[26]={0};chara[10...
#include<iostream>
#include<cctype>
using namespace std;
int main(){
int num[26] = { 0 };
char a[100] = { "/0" };
gets(a);
for (int i = 0; a[i] != '\0'; ++i){
if (isalpha(a[i])) {
if (isupper(a[i]))
a[i] = tolower(a[i]);
++num[a[i] - 97];
}
}
for (int i = 0; i < 26; ++i)
if (num[i] != 0)
cout << char(97 + i) << ":" << num[i] << endl;
return 0;
}
上面是我的题目和代码,自己测试的时候结果都合适,一提交到系统就不合适了。
我想知道我是哪个地方考虑的不周全,存在bug啊,忘大神给出解答,感激不尽啊! 展开
#include<cctype>
using namespace std;
int main(){
int num[26] = { 0 };
char a[100] = { "/0" };
gets(a);
for (int i = 0; a[i] != '\0'; ++i){
if (isalpha(a[i])) {
if (isupper(a[i]))
a[i] = tolower(a[i]);
++num[a[i] - 97];
}
}
for (int i = 0; i < 26; ++i)
if (num[i] != 0)
cout << char(97 + i) << ":" << num[i] << endl;
return 0;
}
上面是我的题目和代码,自己测试的时候结果都合适,一提交到系统就不合适了。
我想知道我是哪个地方考虑的不周全,存在bug啊,忘大神给出解答,感激不尽啊! 展开
1个回答
展开全部
#include<iostream>
#include<cctype>
using namespace std;
int main(){
int num[26] = { 0 };
char a[100] = {0};//初始化有问题
int i;
gets(a);
for (i = 0; a[i] != '\0'; ++i){
if (isalpha(a[i])) {
if (isupper(a[i]))
a[i] = tolower(a[i]);
++num[a[i] - 97];
}
}
for ( i = 0; i < 26; ++i)
if (num[i] != 0)
cout << char(97 + i) << ":" << num[i] << endl;
return 0;
}
更多追问追答
追问
麻烦能解释下为什么么?为啥那样就不对了?
追答
这些都行,你的斜杠错了
char a[100] = { "\0" };
char a[100] = {0 };
char a[100] = "\0";
char a[100] ="";
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询