“钻石图形”之补完
终于搞定的说
思路就是将printf格式输出中的%mc,时实以字符串数组表示
我觉得还不如重写stdio.h文件,让格式输出可以接受变量定义的数据宽度 -_-b
这么一折腾到是可以总结一下:
1.C里面没有字符串连接,字符串连接在C++里面才出现,使用了运算符重载和自动类型转换,开销极大。
2.ANSI C提供printf函数中的数据宽度,只能用十进制整型常量来表示。
3.数组的数据类型确定后,数组内的所有元素都应为该类型,如果类型有异,则C自动进行强制类型转换(这个经验告诉我们ASCII码表是很重要地)。
4.这个C真是基础的可以!
5.最后就是——这个图形其实应该叫“菱形”才对(表打脸~~~)。
大功告成,回去睡觉 *_*
思路就是将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]