acm编程题(c语言,一道),自己运行没错,但AC不了,老是Wrong Anwser,请大牛帮忙。题目如下:
题目如下:Description给定一个只有小写英文字母组成的字符串,串长为n。请你编写程序求出这个字符串中出现次数最多的字母。Input输入的第一行为t(0<t<10)...
题目如下:
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 展开
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 展开
4个回答
展开全部
#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;
}
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;
}
展开全部
//已经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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-17
展开全部
你的时间太长了,没有设计好的算法。可以考虑降低时间复杂度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算法有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询