鱼C论坛

 找回密码
 立即注册
查看: 4550|回复: 9

寻找幸运数急急急急急!!!!!!

[复制链接]
发表于 2014-4-28 20:38:30 | 显示全部楼层 |阅读模式
20鱼币
题目描述

数字8最多的那个数为幸运数。输入n和n个整数,找这n个数中的幸运数。在主函数中调用ndigit函数,判断某个整数x含数字8的个数。如果有多个幸运数输出第一个幸运数,如果所有的数中都没有含数字8,则输出NO.函数int ndigit(int n,int k)功能:统计整数n中含数字k的个数。



输入描述

输入n个n个整数



输出描述

幸运数



输入样例

5 568 567 328  48768  8688



输出样例

8688



用户代码







最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 20:38:31 | 显示全部楼层
#include <stdio.h>

#define K 8

int ndigit(int n,int k)
{
        int num=0;
        while(n)
        {
                if(k == n%10)
                        num++;
                n/=10; 
        }
        return num;        
}

int main()
{
        int i,n,maxNum,max,x;
        maxNum=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
                scanf("%d",&x);
                if(maxNum < ndigit(x,K))
                {
                        maxNum=ndigit(x,K);
                        max=x;
                }
        }
        if(maxNum == 0)
                printf("NO\n");
        else
                printf("%d\n",max);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 21:41:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 22:06:56 | 显示全部楼层
♂我是上帝♂ 发表于 2014-4-28 21:41
不过有没有考虑过负整数?你的好像负整数不行喔。因为题目说的是整数

我的错,疏忽了,恩,在int ndigit()函数中第一行添加
if(n<0) n=-n;
将传入的数值改为正整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 22:26:03 | 显示全部楼层
加个abs不就行啦吗!负数就可以了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 22:27:45 | 显示全部楼层
elvo 发表于 2014-4-28 22:06
我的错,疏忽了,恩,在int ndigit()函数中第一行添加
if(n

这样也可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-28 22:47:15 | 显示全部楼层
#include <stdio.h>
#include <math.h>
#define K 8

int ndigit(int n,int k)
{
        int num=0;
        while(n)
        {
                if(k == n%10)
                        num++;
                n/=10;
        }
        return num;        
}

int main()
{
        int i,n,maxNum,max,x;
        maxNum=0;
        printf("请选择输入整数的个数\n");
        scanf("%d",&n);
        printf("请输入%d个整数\n",n);
        for(i=0;i<n;i++)
        {
                scanf("%d",&x);
                if(maxNum < ndigit(fabs(x),K))
                {       
                                                printf("%d\n",x);
                        maxNum=ndigit(fabs(x),K);
                        max=x;
                        
                }
        }
        if(maxNum == 0)
                  printf("没有幸运数NO\n");            
             else
                printf("幸运数是%d\n",max);
        return 0;
}   //根据楼上改的!懒人路过!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-28 22:59:59 | 显示全部楼层

{:1_1:}

Case Id        Result        Score
0        Pass        3
1        Pass        3
2        Pass        2
3        Pass        2
Total score:10
Judge Result:Presentation Error
返回
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-29 00:00:47 | 显示全部楼层

这代码不对,你这个是一个数一个数输入的,他是要数组的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-29 09:11:02 | 显示全部楼层
jonng 发表于 2014-4-29 00:00
这代码不对,你这个是一个数一个数输入的,他是要数组的。

你可以试试,像数组那样输入,就像题目中的样例输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 05:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表