回 帖 发 新 帖 刷新版面

主题:vc数组问题

请问如何用数组解决以下问题
“输入若干个字符,然后统计其中各个数字出现的次数”
谢谢

回复列表 (共2个回复)

沙发

先給你看看這個程序吧:
//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;
}

板凳


用指针一个一个查找吧,要么匹配字符串也行。

我来回复

您尚未登录,请登录后再回复。点此登录或注册