“钻石图形”之补完
终于搞定的说
思路就是将printf格式输出中的%mc,时实以字符串数组表示
我觉得还不如重写stdio.h文件,让格式输出可以接受变量定义的数据宽度 -_-b

#include <stdio.h>
main(){
    int n=-1,max=5,num=(max+1)/2;
    char k='*';
    char str[]={'%',' ','c'};
    for(int i=0;i<max;i++){
        if(i<(max+1)/2){
            n+=2;
            num--;
        }else{
            n-=2;
            num++;
        };
        str[1]=num+48;
        for(int j=0;j<n;j++){
            if(j==0){
                printf(str,k);
            }else{
                printf("%c",k);
            };    
        };
        if(i<max-1){
        //这个判断完全是因为我看着最后多出的空行不爽 
        printf("\n");
        };
    };
};


这么一折腾到是可以总结一下:
1.C里面没有字符串连接,字符串连接在C++里面才出现,使用了运算符重载和自动类型转换,开销极大。
2.ANSI C提供printf函数中的数据宽度,只能用十进制整型常量来表示。
3.数组的数据类型确定后,数组内的所有元素都应为该类型,如果类型有异,则C自动进行强制类型转换(这个经验告诉我们ASCII码表是很重要地)。
4.这个C真是基础的可以!
5.最后就是——这个图形其实应该叫“菱形”才对(表打脸~~~)。

大功告成,回去睡觉 *_*
[2004-12-18 9:0]

{CommentAuthor} [{CommentTime}]  
{CommentContent}