我也不懂啊啊
by 初音ミク_Miku @ 2018-06-04 20:10:59
@[汪佳凝](/space/show?uid=92224) 心疼的抱住自己
by jkllage456 @ 2018-06-04 20:29:00
哪位大牛可以帮忙测试一下代码?
by jkllage456 @ 2018-06-04 20:29:35
提交题目不用写那个pause的...
然后去掉以后我试着在洛谷ide上跑 是显示这么个错误的 要不换个gets试试 具体算法还没看orz
```
/tmp/tmp6CtG7V.cpp: In function 'int main()':
/tmp/tmp6CtG7V.cpp:13:18: error: 'gets_s' was not declared in this scope
gets_s(st,100);
^
```
by Chino @ 2018-06-04 21:24:21
改了下读入后运行的结果是这样的... 输出这样红点问题应该就是在数组初始化那里了吧.. 本来应该是输出空格的 结果却输出成了'\0'(红点)(这东西就是数组默认初始化的)
![](https://cdn.luogu.com.cn/upload/pic/20633.png)
试试改改那里吧
by Chino @ 2018-06-04 21:32:19
改成这样样例的输出就对了 但是不确保能AC哦.. 我没提交 你自己再看看好了 多注意一下那个'\0'就对了
```
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char st[100];
char st1[100];
char st2[100];
char st3[100];
int chara[100]={ 0 };
int line,hang,p=0,i,m;
line =hang= 0;
gets(st);
gets(st1);
gets(st2);
gets(st3);
for (i = 0; st[i] != 0; i++)
{
m = st[i];
chara[m]++;
}
for (i = 0; st1[i] != 0; i++)
{
m = st1[i];
chara[m]++;
}
for (i = 0; st2[i] != 0; i++)
{
m = st2[i];
chara[m]++;
}
for (i = 0; st3[i] != 0; i++)
{
m = st3[i];
chara[m]++;
}
int max=0, pk;
// max = 0;
pk = 0;
for (i = 65; i <= 91; i++)
{
if (max < chara[i])
{
max = chara[i];
// pk = i;
}
}
char gra[100][26] = { ' ' };//输出图表
pk = max;
while (max>= 1)
{
int m = 65;
for (i = 0; i < 26; i++)//检查字母是否有max个,如果有那么在这个字母的那一行填充*
{
if (chara[m] == max)
{
for (int j = line; j < pk ; j++)
{
gra[j][i] = '*';
}
}
m++;
}
line++;
max--;
// pk--;
}
for (char i = 'A'; i <= 'Z'; i++)
{
gra[line][hang] = i;
hang++;
}
while (p <= line)
{
for (i = 0; i < 26; i++)
{
if(gra[p][i] == '*')
{
printf("*");
}
else if(gra[p][i] >= 'A' && gra[p][i] <= 'Z')
{
printf("%c",gra[p][i]);
}
if (i != 25)
{
printf(" ");
}
}
printf("\n");
p++;
}
return 0;
}
```
by Chino @ 2018-06-04 21:40:10
@[Chino](/space/show?uid=64075) 直接粘贴,依旧是WA,并且我在定义gra时用的空格初始化的啊
by jkllage456 @ 2018-06-04 22:29:48
@[Chino](/space/show?uid=64075) 不管怎么样,还是谢谢你愿意花时间来看我的代码。
by jkllage456 @ 2018-06-04 22:30:26
@[jkllage456](/space/show?uid=101521) emmmmm... 你可能搞错了数组的初始化? 其实你这样初始化 只有第一个是空格 其他都是'\0'来的 我给你个图看吧
![](https://cdn.luogu.com.cn/upload/pic/20650.png)
这一点你误解的话很麻烦的啊... 以后做题出错就懵逼不知道哪里错了
至于为什么还是WA... 应该是算法哪里不对了 其实我并没有太具体看你的代码 不好意思的说.. 只是稍微看了看然后改了下 过了样例就跟你说了... 所以其实我也没帮上啥啦
by Chino @ 2018-06-05 00:55:21
数组初始化用memset,要不直接for循环也行,你这样只初始化了第一个元素
by Pecco @ 2018-07-15 16:45:37