有注释,自己看,可续问。main中的char* string;是声明字符指针而并非字符串,要改成char string[100];
//#include "stdafx.h"//vc++6.0加上这一行.
#include
using namespace std;
void frequency(char *str){
char ch[2][100]={0};//要改成ch[2][100]
int i,j;
for(i=0;i<96;ch[0][i]=32+i++);//加这一句初始化数组ch[0]
for(i=0;str[i]!='\0';i++){
for(j=0;ch[0][j]!='\0';j++)//不初始化,ch[0][j]!='\0'就不能满足
if(str[i]==ch[0][j])
ch[1][j]++;
//else{//这几行就用不着了
// ch[0][j]=str[i];
// ch[1][j]++;
//}
}
cout<<"频数统计如下:"<
if(ch[1][k])//限制未出现的字符输出
cout<
/*以上是基本按你的思路改的。如果完全按你的思路,看下面的函数,控制复杂一些*/
void frequency(char *str){
char ch[2][100]={0};
int i,j;
ch[0][0]=127;//用这一句先让j的循环转起来
for(i=0;str[i]!='\0';i++){
for(j=0;ch[0][j]!='\0';j++)
if(str[i]==ch[0][j]){
ch[1][j]++;
break;
}
if(ch[0][j]==0){
ch[0][j]=str[i];
ch[1][j]=1;
}
}
cout<<"频数统计如下:"<
cout<
void main(void){
char string[100];
cout << "请输入一个长度不大于100的字符串:"<
frequency(string);
}