C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母。

输入
第一行是一个整数N,表示样例的个数。
以后的每行一个字符串,串长不超过2000,且只含大写英文字母。
输出
每个样例输出一行,先是出现次数最多的大写英文字母,然后是它的出现次数。如果存在多个大写英文字母符合题意,只要输出最小的那个。

Sample Input

2
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AAAAABBBB

Sample Output

A 1
A 5

#include<stdio.h>

#include<string.h>

void main()

chara[100];

intfre[26];

int i,len,big=0;

gets(a);

for(i=0;i<26;i++)

fre[i]=0;

len=strlen(a);

for(i=0;i<len;i++)

if(a[i]>='a'&&a[i]<='z')

fre[a[i]-'a']++;

for(i=0;i<len;i++)

if(a[i]>='A'&&a[i]<='Z')

fre[a[i]-'A']++;

for(i=0;i<26;i++)

if(fre[i]>big)big=fre[i];

for(i=0;i<26;i++)

if(big==fre[i])

printf("%c\n",i+'a');

break;

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-02
//这个和楼上的思路是一样的,不过这是完整实现的
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct MaxGet//设置一个结构体存最大字符和出现次数
{
char maxchar;
int maxtime;
};
void main()
{
int Count[26]={0},n,i,j,temp=0;//Count数组表示A-Z出现次数计数
MaxGet maxgets[20];//程序最多能计算20条字符串,这个可以自己更改
char string[2000];//存字符串的字符数组
printf("输入样例个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入字符串:");
scanf("%s",string);
j=0;
while(string[j])//开始计数,65是A的ASCII码,这里等价于string[j]-'A'
{
Count[(int)(string[j]-65)]++;
j++;
}
for(j=0;j<26;j++)//找出出现最多的且是在前面的字符
{
if(Count[temp]<Count[j])
temp=j;
}
maxgets[i].maxchar=(char)(temp+65);//将结果存入存放结果的结构体数组中
maxgets[i].maxtime=Count[temp];
temp=0;//重置临时变量和Count数组,以便下一次处理
memset(Count,0,sizeof(Count));
}
for(i=0;i<n;i++)//输出结果
{
printf("%c  %d\n",maxgets[i].maxchar,maxgets[i].maxtime);
}
}

第2个回答  2015-01-02
思路如下
先定义一个数组s[26],下标0-25 分别对应A-Z
遍历整个字符串,统计每个字符出现的次数
char ch ;
char s[25];
memset(s,0,sizeof(s));//清空s数组
do 
{
    char ch = getchar();
    s[ch-'A']++;  //减去A的ASCII码之后恰好为0,对应数组下标
}
while(ch!='\0');

遍历一次找到s数组中的最大值,就是出现的最大次数 设为m

int count = 0;
int min_index = 0;
for(i=0;i<25;++i)
{
    if(count < s[i])  
    {
        count = s[i];
        min_index = i; //同样次数的最小字母对应下标
     }
}
char min_char = min_index + 'A';
putchar(min_char);为答案
自己组织一下编程实现吧,很简单的
希望对你有帮助!

追问

恩,谢谢,我自己想想。有问题再问你,请指教。

追答请记得采纳哦~~~~

本回答被提问者和网友采纳
第3个回答  2015-01-02
void main(){
int index, i, max, n;
char ch, a[27];
scanf("%d", &n);
while (n--){
fflush(stdin);
memset(a, 0, 27);
while ((ch = getchar()) != '\n')
{
a[ch - 65]++;
}
max = 0; index = 0;
for (i = 0; i < 26; i++)
{
if (max < a[i]) { max = a[i]; index = i; }

}
printf("%c %d\n", index + 65, max);
}
}

C语言编程题目 给一个字符串,请找出出现次数最多的大写英文字母。
{ printf("%c\n",i+'a');break;} }

C语言编程 输入一个字符串 求大写字母,小写字母,数字出现的次数
include<stdio.h>#include <string.h>int main(){ char s[50]={'0'}; int i ,n=0,m=0; gets(s); for(i=0;i<strlen(s);i++){ if(s[i]>='a' && s[i]<='z') n++; if(s[i]>='A' && s[i]<='Z') m++; } printf("\\nx小写出现的次...

...输入一行字符,编程统计并输出其中的大写英文字母和数字的个数_百度...
include <stdio.h> void main(){ char str;int CountBLetter=0, CountOther=0;scanf("%c", &str);while (str!='\\n'){ if ( str>='A' && str<='Z' ){ CountBLetter++;} else { CountOther++;} scanf("%c", &str);} printf("CountBLetter: %d\\n", CountBLetter);printf(...

C语言编程 从键盘输入一个字符串,分别统计其中大写字母、小写字母及其...
printf("大写字母的个数为:%d 小写字母的个数为:%d 空格个数为:%d \\n",countd,countx,countk);printf("数字个数为:%d 其他字符个数为%d\\n",counts,countq);}

C语言编程:统计字符串中各字母出现的次数
char a[81],b[81];\/\/定义两个字符数组 fgets(b,81,stdin);printf("找到:%d\\n",findsub(a,b));system("pause");return 0;} 数据类型:字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。在某些语言中它们可作为基本类型...

C语言编程 从键盘输入一个字符串,分别统计其中大写字母、小写字母及其...
} 再出一个统计输入数字中各个数字的个数的代码 include<iostream> using namespace std;void main(){ int m,i=0,a[10]={0};cout<<"Please input number:";cin>>m;while(m!=0){ i=m%10;a++;m=m\/10;} for(int j=0;j<10;j++){ cout<<j<<":"<<a[j]<<endl;} } ...

...少于80个字符)。输出其中所出现过的大写英文字母.
printf("Input a string:");\/\/getchar();这一句的getchar不要,如果有这一句,你输入的字符串中的第一个字母就被它所获取,str中是从第二个字母开始保存

求字符串"afd%^ABC123?"中大写字母的个数怎么用C语言编程
main(){ int i,j=0;\/\/将计数值j定义为0 char s[]="afd%^ABC123?";\/\/将其定义为数组 for(i=0;s[i]!='\\0';i++)\/\/进行循环操作 if((s[i]>='A')&&(s[i]<='Z'))\/\/判断知否为大写字母 j++;\/\/若为大写字母则J 加1 printf("%d\\n",j);\/\/输出大写字母的个数 } ...

C语言编程在主函数中输入一个字符串利用函数求得字符串中大写字母小写字...
include <stdio.h>#include <ctype.h>int main(void){ char ch[100]; void count(char * p); printf("请输入字符串 : "); gets(ch); count(ch); return 0;}void count(char * p){ int upp=0, low=0, digi=0, spa=0, oth=0; for (int i = 0; p[i]; ++i) { if ...

C语言统计一篇文件里出现最多的三个单词
strlwr(pl); \/\/将字符串pl中的字母变为小写 pw=strtok(pl,s); \/\/提前字符串pl中的首个单词 while(pw!=0){ q=Find(head, pw, &f);if(f==1){ \/\/找到该单词,出现次数加一 q->c++;}else{ \/\/没找到该单词,将该单词插入链表 if(q==head && q->w[0]=='\\0'){ \/\/原链表为...

相似回答