主题:vc数组问题
云端的蚂蚁
[专家分:0] 发布于 2009-04-17 08:30:00
请问如何用数组解决以下问题
“输入若干个字符,然后统计其中各个数字出现的次数”
谢谢
回复列表 (共2个回复)
沙发
Darcy_lingyifan [专家分:10] 发布于 2009-04-23 22:37:00
先給你看看這個程序吧:
//answer.cpp
#include <iostream>
#include <string.h>
using namespace std;
int add(int n, int j, char *p); //對比函數聲明
void main(void)
{
char *pacStr = new char; //字符存放的指針
int iCount = 0; //字符长度計數器
int iTally = 0; //統計個數
int cPause = 0; //循环的结束变量
int k = 0; //k是用來判斷前面是否出現過相同的字符的變量
cin >> pacStr; //输入一组字符串
iCount = strlen (pacStr); //计算字符串长度
for ( ; cPause < iCount; cPause++) //进入循环,当运行了iCount次结束
{
////////////////////////////////////////////////////////////
for (int i=0; i<cPause; i++) //進行逐一排查,篩選出相同字符的代表
{
if (pacStr[cPause] == pacStr[i])
{
k++;
break;
}
}
if(k == 0)
{
iTally = add(iCount, cPause, pacStr); //調用比較函數
cout << pacStr[cPause] << " = " << iTally << endl; //输出字符的相同个数
}
k = 0; //對K進行還原
}
/////////////////////////////////////////////////////////////
delete pacStr;
}
int add(int n, int j, char *p) //進行計算個數的函數,n為字符長度,j為比較的字符下標值,*p為字符指針形參
{
int t = 0; //相同个数计数器
for (int i=j; i<=n; i++) //选择比较
{
if (p[j] == p[i]) //进行判断
{
t++; //累计个数
}
}
return t;
}
板凳
myjianghe [专家分:470] 发布于 2009-04-30 14:06:00
用指针一个一个查找吧,要么匹配字符串也行。
我来回复