Vers le haut780 2022-05-06 14:10 采纳率: 83.3%
浏览 260
已结题

假定在一个整形数组中,每一个元素都是不超过3位的正整数,统计该数组全部元素中数字0、1、…、9各出现的次数

下列代码不知哪里出错了
#include
#include
using namespace std;
int xunzhao(int a[10])
{
int i,flag,f,b,c,d,e,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,L=0;
for(i=0;i<10;i++)
{
flag=log10(a[i])+1;
if(flag==1)
{
switch(a[i])
{
case 1:B++;break;
case 2:C++;break;
case 3:D++;break;
case 4:E++;break;
case 5:F++;break;
case 6:G++;break;
case 7:H++;break;
case 8:I++;break;
case 9:L++;break;
}
}
if(flag==2)
{
f=a[i]/10;
b=a[i]%10;
switch(f,b)
{
case 0:A++;break;
case 1:B++;break;
case 2:C++;break;
case 3:D++;break;
case 4:E++;break;
case 5:F++;break;
case 6:G++;break;
case 7:H++;break;
case 8:I++;break;
case 9:L++;break;
}
}
if(flag==3)
{
c=a[i]%10;
d=a[i]/100;
e=(a[i]%100)/10;
switch(c,d,e)
{
case 0:A++;break;
case 1:B++;break;
case 2:C++;break;
case 3:D++;break;
case 4:E++;break;
case 5:F++;break;
case 6:G++;break;
case 7:H++;break;
case 8:I++;break;
case 9:L++;break;
}
}
}
cout << "出现0的次数为:" << A << '\t';
cout << "出现1的次数为:" << B << '\t';
cout << "出现2的次数为:" << C << '\t';
cout << "出现3的次数为:" << D << '\t';
cout << "出现4的次数为:" << E << '\t';
cout << "出现5的次数为:" << F << '\t';
cout << "出现6的次数为:" << G << '\t';
cout << "出现7的次数为:" << H << '\t';
cout << "出现8的次数为:" << I << '\t';
cout << "出现9的次数为:" << L << endl;
}

int main()
{
int a[10],j;
for(j=0;j<10;j++)
{
cin >> a[j];
}
xunzhao(a);
return 0;
}

  • 写回答

2条回答 默认 最新

  • 柒号华仔 2022年度博客之星评选前沿技术领域TOP 1 2022-05-06 14:39
    关注

    switch()里面包含多个参数,按照从右原则,会先判断最后边的参数,判断完进入case后,执行break会跳出,所以你的程序只能统计整数末位数字0、1、…、9各出现的次数。这里你需要再设计一下。
    另外,当三位数时,提取10位数字的e=(a[i]%100)/10是不正确的,应该为e=(a[i]/10)%10;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月6日

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决