acm编程题(c语言,一道),自己运行没错,但AC不了,老是Wrong Anwser,请大牛帮忙。题目如下:

题目如下:
Description
给定一个只有小写英文字母组成的字符串,串长为n。请你编写程序求出这个字符串中出现次数最多的字母。

Input
输入的第一行为t(0 < t < 10),表示有t组测试用例。
对于每组测试用例,输入有两行。
第一行是一个正整数n( 1 < n < 100)表示字符串的长度。
后面一行是一个长度为n的字符串(只由小写字母组成)。

Output
对于每组测试用例,输出一行,仅输出出现次数最多的字母。
测试用例保证出现次数最多的字母只有一个。

Sample Input

2
5
acmcs
3
zzt

Sample Output

c
z

我的代码如下:
#include "stdio.h"
int main()
{
int t,i,j,b[101]={0};
char a[100];
int n,m,temp;
scanf("%d",&t);
while(t)
{
m=0;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
scanf("%c",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i]==a[j])
{
b[i]++;
}
}
if(m<b[i])
{
m=b[i];
temp=i;
}
b[i]=0;
}
printf("%c\n",a[temp]);
t--;
}
return 0;
}
原题链接如下:http://acm.bupt.edu.cn/onlinejudge/showproblem.php?problem_id=1306

#include "stdio.h"
int main()
{
int t,i,j,b[101]={0};
char a[100];
int n,m,temp;
scanf("%d",&t);
while(t)
{
m=0;
scanf("%d",&n);
scanf("%s", a);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i]==a[j])
{
b[i]++;
}
}
if(m<b[i])
{
m=b[i];
temp=i;
}
b[i]=0;
}
printf("%c\n",a[temp]);
t--;
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-17
//已经AC
#include "stdio.h"
int main()
{
int t,i,j,b[101]={0};
char a[100];
int n,m,temp;
scanf("%d",&t);
while (t)
{
m=0;
scanf("%d",&n);
scanf("%s",a);//改成%s输入即可...
// getchar();
// for (i=0;i<n;i++)
// {
// scanf("%c",&a[i]);
// }
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if (a[i]==a[j])
{
b[i]++;
}
}
if (m<b[i])
{
m=b[i];
temp=i;
}
b[i]=0;
}
printf("%c\n",a[temp]);
t--;
}
return 0;
}
第2个回答  2010-08-17
你的时间太长了,没有设计好的算法。可以考虑降低时间复杂度。
第3个回答  2010-08-17
算法有问题

acm编程题(c语言,一道),自己运行没错,但AC不了,老是Wrong Anwser...
} printf("%c\\n",a[temp]);t--;} return 0;}

acm编程题(c语言,一道),自己运行没错,但AC不了,老是Wrong Anwser...
b=(int)(q*a)%zhi[i];要改成 b=(unsigned __int64)(q*a)%zhi[i];

我的程序哪错了,老是AC不了?总是wrong anwser!!!
} \/\/你小子妈的眼睛就跟张屁眼上没区别,大小写区别看不见???!!!还有他TMD妈的可没说结尾补空行 \/\/cout<<"set #"<<++j<<endl<<"The minimum number of moves is " <<k<<'.'<<endl<<endl;cout<<(j>0?"\\n":"")<<"Set #"<<++j<<endl<<"The minimum number of moves...

...的代码输出效果一样,为什么提交还是wrong anwser??
两个公式在【数学上】看时没有任何区别的,因为在数学上,数字可以是【无穷大】的。但是在【程序设计语言】里面,是有区别的,我们知道整形 int 存储的数字是【有范围】的。我们假设 1+2+...+n 的最终结果为 R,那么用公式 f1 运算时,【中间结果】有:1,1+2,1+2+3,...1+2+...+n ...

航电ACM 1002题,为什么老是“Wrong Anwser”,求大神指点!!
我把你的代码在VS里运行了一下,无法通过编译!下面是我AC的代码!include<stdio.h> include<string.h> int aa[1001],bb[1001],sum[1002];void add(char a[],char b[]);int main(){ char a[1001],b[1001];int n,count=1;scanf("%d",&n);while(n--){ scanf("%s%s",a,b);if...

一道acm,明明是对的啊,怎么就是wrong anwser
题目对于输入和输出的格式要求中有这样一句话:Descriptions for different mazes will be separated by a blank line in both input and output.你的程序在每组输出之间没有空行吧。建议使用gets(a)来读取一行数据。

读软件工程的在全国有哪些比赛,有奖金的更好
1.Accepted. ---通过!(AC)2.Wrong Anwser. ---答案错。(WA)3.RunTime Error. ---程序运行出错,意外终止等。(RTE)4.Time Limit Exceeded. ---超时。程序没在规定时间内出答案。(TLE)5.Presentation Error. ---格式错。程序没按规定的格式输出答案。(PE)6.Memory Limit Exceeded. ---超...

相似回答