| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3064 人关注过本帖
标题:C语言编程,小菜鸡求大神帮忙
取消只看楼主 加入收藏
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
C语言编程,小菜鸡求大神帮忙
  Description
输入一段英文(字数小于100),以回车结束,统计其中的每个字母出现次数,不区分大小字。
Input
多组测试数据,每组输入一段英文(字数小于100),以回车结束
Output
输出每个字母出现的次数(次数为零的不输出) 每组数据后面输出一个空行
 以下是我的代码,但是oj上显示错误
#include<stdio.h>
#include<string.h>
int main()  
{
    char str[100];
    int n[26]={0};
    int i,j;
    while(gets(str)!=NULL)
    {
      j=strlen(str);
      for(i=0;i<j;i++)
      {if(str[i]>=97&&str[i]<=122)
      n[str[i]-'a']++;
       if(str[i]>=65&&str[i]<=90)
      n[str[i]+32-'a']++;}
      for(i=0;i<26;i++)
      {if(n[i]>0){
       printf("%c:%d",i+'a',n[i]);
       printf("\n");
       printf("\n");}
      }
      i=0;for(i=0;i<26;i++)
      n[i]=0;
    }   
}
搜索更多相关主题的帖子: C语言 输出 str for i++ 
2018-11-28 11:52
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 2楼 豆豆的滴
Sample Input
Welcome to c world.
Sample Output
c: 2
d: 1
e: 2
l: 2
m: 1
o: 3
r: 1
t: 1
w: 2
类似这种形式
2018-11-28 13:06
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 2楼 豆豆的滴
我觉得我输出已经可以了,但总是wrong anwser,不知道哪里有问题,求大神指教
2018-11-28 13:08
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 6楼 wlxy_wang
大神这是我对第二个问题修改后的代码,但第一个问题不是很理解,外循环是那个while吗,为什么是死循环?
请您指教,谢谢
#include<stdio.h>
#include<string.h>
int main()  
{
    char str[100];
    int n[26]={0};
    int i,j;
    while(gets(str)!=NULL)
    {
      i=0;for(i=0;i<26;i++)
      n[i]=0;
      j=strlen(str);
      for(i=0;i<j;i++)
      {if(str[i]>=97&&str[i]<=122)
      n[str[i]-'a']++;
       if(str[i]>=65&&str[i]<=90)
      n[str[i]+32-'a']++;}
      for(i=0;i<26;i++)
      {if(n[i]>0)
       printf("%c:%d\n",i+'a',n[i]);}
       printf("\n");
    }     
}
   
2018-11-28 18:41
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 8楼 豆豆的滴
不行啊
2018-11-28 19:26
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 10楼 想都不要想
可是它要求多组测试,我该怎么改
2018-11-28 22:20
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
回复 10楼 想都不要想
可是它要求多组测试啊
2018-11-29 15:14
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
#include<stdio.h>
#include<string.h>
int main()
{
    int A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z;
    char str[100],ch;
    int i,j;
    while(gets(str)!=NULL)
    {
      j=strlen(str);
      A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=0;
      for(i=0;i<j;i++)
     {
      ch=str[i];
      switch(ch){
       case'a':case'A':A++;break;
       case'b':case'B':B++;break;
       case'c':case'C':C++;break;
       case'd':case'D':D++;break;
       case'e':case'E':E++;break;
       case'f':case'F':F++;break;
       case'g':case'G':G++;break;
       case'h':case'H':H++;break;
       case'i':case'I':I++;break;
       case'j':case'J':J++;break;
       case'k':case'K':K++;break;
       case'l':case'L':L++;break;
       case'm':case'M':M++;break;
       case'n':case'N':N++;break;
       case'o':case'O':O++;break;
       case'p':case'P':P++;break;
       case'q':case'Q':Q++;break;
       case'r':case'R':R++;break;
       case's':case'S':S++;break;
       case't':case'T':T++;break;
       case'u':case'U':U++;break;
       case'v':case'V':V++;break;
       case'w':case'W':W++;break;
       case'x':case'X':X++;break;
       case'y':case'Y':Y++;break;
       case'z':case'Z':Z++;break;
      }
     }
      if(A>0)printf("a:%d\n",A);
      if(B>0)printf("b:%d\n",B);
      if(C>0)printf("c:%d\n",C);
      if(D>0)printf("d:%d\n",D);
      if(E>0)printf("e:%d\n",E);
      if(F>0)printf("f:%d\n",F);
      if(G>0)printf("g:%d\n",G);
      if(H>0)printf("h:%d\n",H);
      if(I>0)printf("i:%d\n",I);
      if(J>0)printf("j:%d\n",J);
      if(K>0)printf("k:%d\n",K);
      if(L>0)printf("l:%d\n",L);
      if(M>0)printf("m:%d\n",M);
      if(N>0)printf("n:%d\n",N);
      if(O>0)printf("o:%d\n",O);
      if(P>0)printf("p:%d\n",P);
      if(Q>0)printf("q:%d\n",Q);
      if(R>0)printf("r:%d\n",R);
      if(S>0)printf("s:%d\n",S);
      if(T>0)printf("t:%d\n",T);
      if(U>0)printf("u:%d\n",U);
      if(V>0)printf("v:%d\n",V);
      if(W>0)printf("w:%d\n",W);
      if(X>0)printf("x:%d\n",X);
      if(Y>0)printf("y:%d\n",Y);
      if(Z>0)printf("z:%d\n",Z);
      printf("\n");
    }  
}
2018-11-29 20:45
qcjqcj
Rank: 1
等 级:新手上路
帖 子:31
专家分:8
注 册:2018-11-26
收藏
得分:0 
谢谢各位的帮助,想解释一下我这题犯的错,输出a:  2冒号后面有个空格。。。
2018-12-01 22:21
快速回复:C语言编程,小菜鸡求大神帮忙
数据加载中...
 
   



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

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