poj 2136 打印字母的树状图
来源:互联网 发布:阿里云ubuntu中文乱码 编辑:程序博客网 时间:2024/05/29 10:42
水一发。注意每列中间有空格,每行末无空格。
还有另一个需要注意的地方:如下这段代码
if(s[i]>='A' && s[i]<='Z'){ num[s[i]-'A']++; res = max(res,num[s[i]-'A']); }如果写成
if(s[i]>='A' && s[i]<='Z') res = max(res,++num[s[i]-'A']);那么会出现错误。原因在于max的宏定义。因为max的定义采用三目运算符,所以在res更新的时候,++运算会执行两次,导致错误。以后要注意在宏定义中要少用表达式或者函数调用。
#include <stdio.h>#include <string.H>#define N 100#define max(a,b) ((a)>(b)?(a):(b))char s[N];int num[27];int main(){ int i,j,res=0; memset(num,0,sizeof(num)); for(j = 0;j<4;j++){ gets(s); for(i = 0;s[i]!='\0';i++) if(s[i]>='A' && s[i]<='Z'){ num[s[i]-'A']++; res = max(res,num[s[i]-'A']); } } for(i = res;i>=1;i--){ for(j = 0;j<26;j++){ if(num[j] >= i) putchar('*'); else putchar(' '); if(j<25) putchar(' '); } putchar('\n'); } for(j = 0;j<26;j++){ putchar('A'+j); if(j<25) putchar(' '); } putchar('\n'); return 0;}
0 0
- poj 2136 打印字母的树状图
- 打印出字母构成一样的词
- 打印所有字母所有可能的组合
- C语言打印A的星星字母
- 输入abcd 打印所有字母的组合
- java数组打印字母的等腰三角形
- 递归打印目录的树状结构
- 打印字母组合
- 循环打印菱形字母
- 关于打印字母
- 打印三角型字母
- 打印菱形字母
- 打印字母菱形图案
- 打印字母菱形
- 打印字母金字塔
- 利用打印九九乘法表的思想输出字母的三角形
- 统计字符串中字母出现的次数并打印最多的字母----C语言练习题
- 输入5个字符串,打印出"b"开头的字母
- poj 1045/3299 数学公式推导(欧姆定律/湿度值)
- Deep Learning L教程(矢量化编程实现)(二)
- 树的直径和并查集判环
- Deep Learning L教程(矢量化编程实现)(三)
- 全排列,回溯
- poj 2136 打印字母的树状图
- HDU 1166 敌兵布阵
- 【POJ 2386】 Lake Counting
- poj 1062 最短路(昂贵的聘礼)
- iptables防火墙原理详解
- MVC,MVP 和 MVVM 的图示
- aoj0118结题报告(太简单了,就不说明了)
- 【POJ 1562】 Oil Deposits
- 跨平台编译coocs2d-x工程