------- IOS培训、IOS培训、期待与您交流! ----------
</pre><pre name="code" class="cpp">#include<stdio.h> #include<string.h> int main() { char a[100]; printf("请输入一串字符:"); scanf("%s",a); printf("%s",a); int l=strlen(a); int j,k,n,m; for (int i; i<l; i++) { printf("%d",j); switch (a[i]) { case 'a': j++; break; case 'b': k++; break; case 'c': m++; break; case 'd': n++; break; } } printf("输入的字符串里含有的a的个数%d, b的个数:%d,c的个数:%d,d的个数:%d",j,k,m,n ); }
在做基础测试题,犯了一个低级错误,就是case 的内容不能使变量,要是常量,而且在排序的过程中也没有把ABCD字符跟着个数改变到时输出的字母和个数不一致,后来把程序改成以下所示,成功实现功能le ~
而且这个开始i,j,k,l,m 变量没有赋初值,导致个数出现一串数字,后来赋值为0之后成功实现~
#include <stdio.h> #include<string.h> int main() { char ch[100]; int i,n,j=0,k=0,l=0,m=0; printf("请输入字符串:\n"); gets(ch); n=strlen(ch); for(i=0;i<n;i++) { switch (ch[i]) { case 65: j++; break; case 66: k++; break; case 67: l++; break; case 68: m++; break; } }//计算A,B,C,D的个数 int temp,z,q; char tempp=' '; int count[4]={j,k,l,m}; char a[4]={'A','B','C','D'}; for (z=3; z>=0; z--) { for(q=0;q<=z;q++) { if(count[q+1]<count[q]) { temp=count[q]; count[q]=count[q+1]; count[q+1]=temp; tempp=a[q]; a[q]=a[q+1]; a[q+1]=tempp; } } }//排序 for (int t=3; t>=0; t--) { printf("出现 %c 的次数为:%d\n",a[t],count[t]); }//输出 return 0; }
----------------------
IOS开发、IOS、期待与您交流! ----------------------详细请查看:www.itheima.com