作业帮 > 综合 > 作业

求c语言练习题,输入一个数字,求其中的偶数个数等

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/30 16:17:22
求c语言练习题,输入一个数字,求其中的偶数个数等
新手,老师布置的作业,输入一个unsigned long long的整数,求其中的不同偶数个数,最大的偶数,最小的偶数,已经频率最大的偶数例如输入 123456788,偶数有4个(2468),最大的是8,最小的是2,频率最高的是8输入 8888444455223,偶数有2个(248),最大的是8,最小的是2,频率最高的也是8再输入 3547595768,偶数有3个,最大的是8,最小的是4,频率最高的是468(3个频率是一样的)求高手给写下程序,带截图有补分
例如输入 123456788,偶数有4个(2468),最大的是8,最小的是2,频率最高的是8
输入 8888444455223,偶数有2个(248),最大的是8,最小的是2,频率最高的也是8
再输入 3547595768,偶数有3个,最大的是8,最小的是4,频率最高的是468(3个频率是一样的)求高手
刚才提交的格式有点乱,
求c语言练习题,输入一个数字,求其中的偶数个数等
给你代码:#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char str[111];//输入的整数,用字符串保存
int c[10];//各个数字的个数
int main()
{
    while(scanf("%s",str)!=EOF)
    {
        int i,j,k,n;
        n=strlen(str);
        memset(c,0,sizeof(c));//清空
        for(i=0;i<n;i++)c[str[i]-'0']++;
        int minv=11,maxv=-1,maxnum=-1,sum=0;
        for(i=0;i<=8;i+=2)
        {
            if(c[i]!=0)
            {
                sum++;
                minv=min(minv,i);
                maxv=max(minv,i);
                maxnum=max(maxnum,c[i]);
            }
        }
        if(maxv==-1){printf("不存在偶数\n");continue;}
        printf("偶数个数为%d,最大的是%d,最小的是%d,频率最高的是",sum,maxv,minv);
        for(i=0;i<=8;i+=2)if(c[i]==maxnum)printf("%d",i);
        printf("\n");
        //printf("%d %d %d %d\n",sum,maxv,minv,maxnum);
    }
    return 0;
}
再问: 这个是c++版本的吧,c++还没学,这个编译器比较笨,只支持c语言。。。请问下头文件在c语言里要怎么写,刚入门,原谅一下。。。
再答: #include
#include
这样的是C的形式。。
我学C的时候都没分过C和C++。。反正现在编译器两个都能用。。
再问: 那是不是需要再外面重新定义一个max和min的函数,因为改成c以后,只用那两个头文件的话,max和min好像是没有的结果是这个样子。。。