C++编程练习9--统计0-9的个数

问题

读入一串字符,统计0-9出现的次数

算法思想1

用永真循环while(1)来输入数据,记录长度,当长度大于100或者出现$字符时退出。首先计数清零,如果遇到0-9计数加一,最后输出。


#include<bits/stdc++.h>
using namespace std;
//读入一串字符,分别统计数字'0'--'9'出现的次数
int main(){
  int num[10],i;
  char ch[100];
  int length=0;
  for(i=0;i<10;i++){//计数清零 
   num[i]=0;
  }
  cout<<"请输入字符串:";
  while(1){
  	cin>>ch[length];
  	length++;
  	if(length>100||ch[length-1]=='$') break;
  } 
  //1s3d234d32f49$
  for(i=0;i<length;i++){
  	if(ch[i]>='0'&&ch[i]<='9'){
  		num[(ch[i]-'0')]++;
	}
  }
  for(i=0;i<10;i++){
   cout<<i<<"出现"<<num[i]<<endl;
}
}

运行

算法思想2

读入一串字符,直到读入’\n’退出,计数清零,开始统计0-9的个数,统计减去48后的值的个数,0的ASCII值为48.最后输出的时候只输出0-9统计的个数。


```cpp
#include<bits/stdc++.h>
using namespace std;
//读入一串字符,分别统计数字'0'--'9'出现的次数
int main(){
  int num[10],i;
  char c;//每一个字符 
  for(i=0;i<10;i++){//计数清零 
   num[i]=0;
  }
 while((c=getchar())!='\n'){//读入每一个字符 只要不是换行 
    num[c-48]++;//0的ASCII码是48 
  }
  for(i=0;i<10;i++){
   cout<<i<<"出现"<<num[i]<<endl;
}
}
![运行](https://img-blog.csdnimg.cn/d757f3271a2d4bbb85d92271c00b2838.png)

## 收获
用while(1)输入真好用!
char c;
while((c=getchar())!=‘\n’)字符串的输入方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值