问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:number.cpp
*作 者:单昕昕
*完成日期:2014年11月24日
*版 本 号:v1.0
*
*问题描述:定义一个数组统计字符数组中每一个数字出现的次数。
*程序输出:字符数组每一个数字出现的次数。
*/
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
char str[50];
int a[10]={0};
int i=0;
cout<<"输入字符串:";
gets(str);
for(i=0;str[i]!='\0';++i)
{
if(str[i]>='0'&&str[i]<='9')
a[str[i]-'0']++;
}
for(i=0;i<10;++i)
{
cout<<"数字"<<i<<"出现的次数为:"<<a[i]<<endl;
}
return 0;
}
运行结果:
知识点总结:
重新定义一个数组a【i】来统计每一个数字字符出现的次数。
学习心得:
一开始用的是case语句,这样可以统计少量的数字,如果多的话就不好用了~!
所以我们通过重新定义数组,用a[str[i]-'0']++;这样的一个小技巧就很方便了~~
还有,一开始在cout那句又犯错误了,a[i]<<这句写成了a[str[i]-'0'],好粗心。。