poj2136---输出特殊图形

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int f[26];
int find(int pos,int top)
{
    while(f[pos] < top && pos<26)
        pos++;
    if(pos == 26)
        return -1;
    return pos;
}
int max(int a,int b)
{
    if(a>b)
        return a;
    else
        return b;
}
int main()
{
    int top=0,i;
    char ch;
    memset(f,0,sizeof(f[0]));
    while((ch = getchar()) != EOF)
    {
        if(ch >= ‘A‘ && ch <= ‘Z‘)
            f[ch - ‘A‘]++;
    }
    for(i=0;i<26;i++)
        top=max(top,f[i]);
    for(i=top;i >= 1; i--)
    {
        int pos=0,temp,j,flag=1;
        while(1)//分段遍历f[26]数组
        {
            temp=find(pos,i);
            if(temp == -1)
                break;
            if(flag == 1)
                flag=0;
            else
                printf(" ");//在判断还有后续了之后才输出那个空格
            for(j = pos;j < temp; j++)
            {
                printf("  ");
            }
            printf("*");
            pos=temp+1;
        }
        printf("\n");
    }
    for(i=0;i<25;i++)
        printf("%c ",‘A‘+i);
    printf("%c",‘Z‘);
    return 0;
}
时间: 2024-11-05 15:52:42

poj2136---输出特殊图形的相关文章

编程题:用for循环嵌套,输出下列图形:

#include<stdio.h> void main() { int m,n; for(n=1;n<=9;n=n+1) {for(m=1;m<=n;m=m+1) printf("%-4d",m); printf("\n");             /*一行结束需换行*/ } } 算法解析: 运行结果: 编程题:用for循环嵌套,输出下列图形:,布布扣,bubuko.com

提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推

/* ***** **** *** ** * */ #include <stdio.h> int main() { // 1.定义一个变量存储用户输入的值 int n = 0; // 一定要初始化 // 2.判断n值合不合理 while (n <= 0) { // 2.1 提示用户输入正整数 printf("请输入一个正整数:\n"); // 2.2 接收输入的数据 scanf("%d", &n); } // 3.输出图形 for (int

输出字母图形

输入代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:sum123.cpp *作 者:林海云 *完成日期:2014年12月24日 *版 本 号:v2.0 * *问题描述:利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形. *程序输入:n,m *程序输出:

每日一码——输出花样图形

今天的每日一码为大家介绍一些常见的在控制台输出不同形状图形的代码. 首先来看一下如何输出乘法口诀表: 下面再来看看,如何输出一个三角形: 最外层循环负责推动输出往下进行,内层嵌套循环负责分别输出图像中的三个部分,分别是左侧空白部分,左半部三角形和右半部三角形. 最后,我们再来看一个例子,打印空心三角形: 在控制台输出图形,大多使用多层循环嵌套.这时候,首先需要观察输出图形规律,对图像进行切割,分几个部分输出. 大家也可以尝试一下别的图形哦,比方说心形,菱形等等. 由于小编水平有限,如有不足,还请

【c语言】输出一个图形

/* 输出 ********** very good! ********** */ #include <stdio.h> int main() { int i; for( i = 0; i < 10; i++) { printf("*"); } printf("\n"); printf("very good!\n"); for( i = 0; i < 10; i++) { printf("*"); }

菜鸟之Java小知识点-输出如下图形

* * * * * * * * * * * * * * * public class Print {     public static void main(String[] args){        for (int i = 0; i < 5; i++){            for (int j = 5; j > i; j--) {               System.out.print("*");            }            System

Python输出特殊字符图形(一)大雁南飞

1 #conding=utf-8 2 import sys 3 def fun(char,num): 4 """ 5 @author:成都-杰森 QQ:917207011 6 :param char:str(char) 7 :param num:int(num) 8 :return: 9 char = str(char) 10 num = int(num) 11 rowLen = num 12 for i in range(num): 13 output = ' ' * (r

For嵌套输出图形

/*输出此图形    *   * *  * * * * * * ** * * * *  * * * *   * * *   * *     *解析:可以把此图形看成两部分----*---* *--* * *-* * * ** * * * * -* * * * --* * *---* * ----* //上半部分解析i行数  j-数  k*数0        4      11        3      22        2      33        1      44        0 

Java打印M图形(二维数组)——(九)

对于平面图形输出集合图形与数字组合的,用二维数组.先在Excel表格中分析一下,找到简单的规律.二维数组的行数为行高,列数为最后一个数大小. 对于减小再增大再减小再增大的,可以用一个boolean标志其是增加还是减小状态,减到最小时将其标志设为相反的并改变这时的初值大小. 效果: Excel中分析 Java代码: 1 package Java_Test; 2 3 public class PrintM { 4 5 /* 6 7 3 7 8 2 4 6 8 9 1 5 9 10 平面图形(二维数组

1412251902-蓝桥杯-基础练习 字母图形

基础练习 字母图形 时间限制:1.0s   内存限制:256.0MB 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形. 输入格式 输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数. 输出格式 输出n行,每个m个字符,为你的图形. 样例输入 5 7 样例输出 ABCDEFG BABCDEF CBABCDE DCBAB