C语言计算字符出现次数,求纠错,无法纠出可重写程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {int i,f,n,j,z;
char a[10][5],m,b[20],c[2][3],k;
gets(b);
for(z=0;b[0]='\0';z++)
{m=b[0];
k='0';
{for(i=0;b[i]='\0';i++)
{if(b[i]==m)
{for(j=i;b[j+1]='\0';j++)
{b[j]=b[j+1];}
k++;
if(i>0)
i--;
else
i=0;}}
a[z][0]=m;
a[z][1]=k;}}
for(i=0;i<=z;i++)
for(n=i;n<=z;n++)
{if(a[i]>a[n])
{c[0][0]=a[i][0];c[0][1]=a[i][1];
a[i][0]=a[n][0];a[i][1]=a[n][1];
a[n][0]=c[0][0];a[i][1]=c[0][1];}}
for(i=0;i<=z;i++)
printf("%c=%c",a[i][0],a[i][1]);
return 0;
}

编程,输入一个字符串,分别输出字符串中所包含的各个不同的字符及其各自字符的数量。如:输入字符串: abcedabcdcd

则输出: a=2 b=2 c=3 d=3 e=1 。

测试用例 1
amkssksabbaacc↵

a=4↵
b=2↵
c=2↵
k=2↵
m=1↵
s=3↵

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

main()

{

char a[111];

int s[150]={0},max='a';

gets(a);

for(int i=0;i<strlen(a);i++)

{//例如输入aaabb,s[65](s['a'])的值就变成3了,s[67]或(s['b'])的值就变成2 

s[a[i]]++;//将字符的ASCII码作为数组s的下标; 

if(a[i]>max)

max=a[i];//记录最大下标(ASCII码最大的字符) 

}

for(int i=0;i<=max;i++)

if(s[i]!=0)//数组元素不为0,就说明i的值所对应的字符出现过;然后输出 

printf("%c=%d\n",i,s[i]);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-26

#include<stdio.h>

int main(){

int a[128]={0};

char st[10000];

char *s=st;

gets(s);

while(*s){

if(*s>64&&*s<91){

*s+=32;

}

a[*s]++;

s++;

}

for(int i=0;i<128;i++)

if(a[i])printf("%c=%d\n",i,a[i]);

}

相似回答