数字频率程序

问题描述 投票:0回答:1

给定一个由字母和数字组成的字符串 s,找到给定字符串中每个数字的出现频率。

我已经尝试过了,我的代码如下。请解释为什么它不起作用。

#include <stdio.h>
#include <string.h>
#include<ctype.h>
    int main() {
    char str[100];
    fgets(str,1000,stdin);
    int n;
    n=strlen(str);
    int sum[10]={0,0,0,0,0,0,0,0,0,0};
    int i;
    for(i=0;i<n;i++){
        if(isdigit(str[i])){
            sum[str[i]]=sum[str[i]]+1;
        }
    }

    for(i=0;i<10;i++){
        printf("%d ",sum[i]);
    }
    return 0;
}
arrays c
1个回答
0
投票

将您的累积线更改为

        sum[str[i]-'0']++;

它可能会做你想做的事(尽管你没有准确解释它一开始没有做什么)。

注意 str[i] 是一个 char,即使它是第 j 个数字,其对应的 int 值也不会是 j。

© www.soinside.com 2019 - 2024. All rights reserved.