poj2136

我真的很想在这里好好分析一下这一题啊,首先一看题目给人的感觉就是貌似每行如果后面都是空格就不能输出,但是貌似这样很难,我就先不试这个,看看用矩形可以不,然后我敲出来了,第一次是最后面有空格,错了,嗯嗯,空格有问题,并好好分析了一下题目,发现“shows how many times each letter (but not blanks, digits, or punctuation) appears in the all-upper-case input“,喔,是输入的字符字母的个数(即没有的不用输出打印咯),改了两方面:输出空格,输出字符;但是结果竟然是错的,但是再细细理解,没有错啊,怎么啦?自己随便测试的例子也过了啊,汗,网上搜吧,太复杂了,懒得细看别人的代码,最后翻了几个代码,都和自己的写法有差别,大家都喜欢C++啊,唉,很无奈地继续研究自己的代码,没有耐心了,搞毛啊,我的思路没有问题啊,不会是第一种想法(不是矩形那种),可是翻得那些怪怪的代码,人家说这只是一道简单题啊,用矩行就可以了啊,与我之前的思路没有问题啊,哪里错了?!无奈中,把别人的代码复制过来,运行了一下,并运行自己的实例,汗,无语,原来是26的大写字符都要输出,为零就不要打印*就可以了,我泪奔啊,是我理解能力有问题吗?是自己英语没有学好吗?别一道水题折磨那么长时间,我汗颜啊,纠结在题目的理解上了!额……唉……

C语言版本的

#include "stdio.h"
#include "string.h"

int main()
{
 int i,j,t=0,sum=0;
 int str[30];
 char ch;
 
 memset(str,0,sizeof(str));
 
 for(i=0;i<4;)
 {
  scanf("%c",&ch);
  if(ch=='\n')
   i++;
  else
  {
   if(ch>='A'&&ch<='Z')
    str[ch-'A']++;
  }
 }
 
 for(i=0;i<26;i++)
 {
 /*if(str[i]!=0)//就是之前不输出那些文本没有的字符要用到的东西!
 {
 t=i;
 }*/
  if(sum<str[i])
   sum=str[i];
 }
 
 for(i=0;i<sum;i++)
 {
  for(j=0;j<=25;j++)
  {
   if(str[j]>=sum-i)
    printf("*");
   else
    printf(" ");
   if(j!=25)
   {
    printf(" ");
   }
  }
  printf("\n");
 }
 
 for(i=0;i<=25;i++)
 {
  
  printf("%c",i+'A');
  if(i!=25)
   printf(" ");
 }
 printf("\n");
}

 …………………………

转载于:https://www.cnblogs.com/Shirlies/archive/2011/12/17/2291320.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值