luckin 发表于 2014-4-28 20:38:30

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

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


输入描述
输入n个n个整数


输出描述
幸运数


输入样例
5 568 567 328487688688


输出样例
8688


用户代码






elvo 发表于 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;
}

♂我是上帝♂ 发表于 2014-4-28 21:41:52

elvo 发表于 2014-4-28 21:18 static/image/common/back.gif


{:5_106:}不过有没有考虑过负整数?你的好像负整数不行喔。因为题目说的是整数{:1_1:}

elvo 发表于 2014-4-28 22:06:56

♂我是上帝♂ 发表于 2014-4-28 21:41 static/image/common/back.gif
不过有没有考虑过负整数?你的好像负整数不行喔。因为题目说的是整数

我的错,疏忽了,恩,在int ndigit()函数中第一行添加
if(n<0) n=-n;
将传入的数值改为正整数

makefile 发表于 2014-4-28 22:26:03

加个abs不就行啦吗!负数就可以了!

♂我是上帝♂ 发表于 2014-4-28 22:27:45

elvo 发表于 2014-4-28 22:06 static/image/common/back.gif
我的错,疏忽了,恩,在int ndigit()函数中第一行添加
if(n

{:5_106:}这样也可以

makefile 发表于 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;
}   //根据楼上改的!懒人路过!

luckin 发表于 2014-4-28 22:59:59

elvo 发表于 2014-4-28 21:18 static/image/common/back.gif


{: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
返回

jonng 发表于 2014-4-29 00:00:47

elvo 发表于 2014-4-28 20:38 static/image/common/back.gif


这代码不对,你这个是一个数一个数输入的,他是要数组的。

elvo 发表于 2014-4-29 09:11:02

jonng 发表于 2014-4-29 00:00 static/image/common/back.gif
这代码不对,你这个是一个数一个数输入的,他是要数组的。

你可以试试,像数组那样输入,就像题目中的样例输入
页: [1]
查看完整版本: 寻找幸运数急急急急急!!!!!!