| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:帮我看一下程序,程序输出问题?
只看楼主 加入收藏
天谈2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-3-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
帮我看一下程序,程序输出问题?
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
   int i,j,n,m,k,l,t,s;
   int flag,b[100];
   int max,min,h=0;
   char a[100];
  scanf("%d",&t);
   while(t--)
    {
       scanf("%s",a);
       n=strlen(a);
       for(i=0;i<n;++i)
       {l=0;
          for(j=i+1;j<n;++j)
           {
            if(a[i]==a[j])
            l++;
            }
           b[i]=l+1;
         }
       max=b[0];
       min=b[0];
       for(i=0;i<n;++i)
        if(max<b[i])
         {
           k=max;
           max=b[i];
           b[i]=k;
          }
         if(min>b[i])
        {
          s=min;
          min=b[i];
          b[i]=s;
        }
            m=max-min;
       if(m==1||m==0)
       flag=0;
       else if(m==2)
       flag=1;
       else if(m>=3)
       for(flag=1,j=2;j<=(int)(sqrt(m));++j)
           if(m%j==0)
            {
               flag=0;
               break;
             }
           if(flag==0)
            {
              printf("No Anwser\n");
              printf("%d\n",h);
            }
             if(flag==1)
               {
                 printf("Lucky Word\n");
                 printf("%d\n",m);
                }
          }
return 0;
}
搜索更多相关主题的帖子: include 
2011-04-24 11:32
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:2 
你这个题目是求什么的嘛?,还有各个变量代表的是什么,不然很难读懂你程序的。更不要说改错了。
2011-04-24 11:51
天谈2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-3-27
收藏
得分:0 
回复 2楼 张春平
就是输入一个字符串,求出字符出现最多的次数减去最少的次数,判断其差值是不是一个质数,若是就输出Lucky
Word,或者就输出No Answer!其中第一个数字2是输入数据组数
样例输入
2
error
olympic
样例输出
Lucky Word
2
No Answer
0
2011-04-24 12:04
一片草地
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2011-3-18
收藏
得分:6 
          for(j=i+1;j<n;++j)
           {
            if(a[i]==a[j])
            l++;
            }
  你这样判断2个字符相等好像有问题吧   最大的 是没问题  最少的肯定是1 或2
2011-04-25 05:20
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
如果是输入:error,ansor,那么r的出现次数是3还是4?是判断单个字符串,还是判断所有的字符串?
2011-04-25 06:50
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:10 
1) scanf()不能接收带空格字符串,最好换成 gets(a)
2) 你下面的统计部分,我看不明白,像是有问题。能解释一下吗?
      for(i=0;i<n;++i)
       {l=0;
          for(j=i+1;j<n;++j)
           {
            if(a[i]==a[j])
            l++;
            }
           b[i]=l+1;
         }
我的代码:
程序代码:
#include <stdio.h>
#include <math.h>
int isPrime(int n)
{
    int i,k;

    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0)return 0;
    return 1;
}
int main()
{
    int count[153]={0};    // 放字符 出现次数的统计结果。下标对应 相应字符的ASCII码!!!
    char s[1000];
    int n,i,d,max,min,flag;

    scanf("%d",&n);
    getchar();            //清除scanf()产生的垃圾数据

    while(n--)
    {
        gets(s);

        for(i=0;s[i];i++)count[s[i]]++;        //统计出现次数

        max=min=1;                //计算 所出现字符 的最大、小次数
        for(i=0;i<153;i++)   
            if( max<count[i] )max=count[i];
            else if( count[i]>1 && min>count[i] )min=count[i];

        d=max-min;   
       
        if( d>1 && isPrime(d) )
            printf(" %d\n Lucky Word\n",d);
        else    
            printf(" %d\n No Answer!\n",d);

        for(i=0;i<153;i++)count[i]=0;    //统计数组清零,准备处理下一个字符串
    }
    return 0;
}



[ 本帖最后由 kwxx 于 2011-4-25 09:53 编辑 ]
2011-04-25 09:14
快速回复:帮我看一下程序,程序输出问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013085 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved