喜欢写些小代码,有了解过一些c和c++方面的知识,想在这块有所发展但是苦于现状不给力,贴点代码放上来吧,没事了自己看看活动下脑子,博客嘛,很大程度上来说是当笔记本用的,
这是运行后的效果截图
放上代码方便以后无聊了瞧瞧,
#include <stdio.h> #include <cstdlib> int main() { do { int h=0; printf("请输入行数(输入0结束):"); scanf("%d",&h); if(h==0) break; else if(h<0) { printf("%d输入有误,请输入正整数\n",h); } else { if(h%2==0) { //偶数行 int c_h=h/2;//转折行 int i=1;//当前行 int j=0;//行内循环计数 for(i;i<=h;i++)//总行数循环 { if(i<=c_h)//上半部分 { // 空格数+*数=c_h+i-1 // 空格数=c_h-i // *数=2*i-1 j=1; for(j;j<=c_h+i-1;j++)//空格加* { if(j<=c_h-i)//画空格 printf(" "); else printf("+"); } printf("\n"); }else { //下半部分 i行跟c_h-(i-c_h)+1行情况一样的 2c_h-i+1 int hh=2*c_h-i+1;//临时行 j=1; for(j;j<=c_h+hh-1;j++) { if(j<=c_h-hh) printf(" "); else printf("+"); } printf("\n"); } } }else { //奇数行 int c_h=(h+1)/2; int i=1;//当前行 int j=0;//行内循环计数 for(i;i<=h;i++) { if(i<=c_h)//上半部分 { // 空格数+*数=c_h+i-1 // 空格数=c_h-i // *数=2*i-1 j=1; for(j;j<=c_h+i-1;j++) { if(j<=c_h-i) printf(" "); else printf("+"); } printf("\n"); }else { //下半部分 i行跟c_h-(i-c_h)行情况一样的 2c_h-i int hh=2*c_h-i;//临时行 j=1; for(j;j<=c_h+hh-1;j++) { if(j<=c_h-hh) printf(" "); else printf("+"); } printf("\n"); } }//行循环结束 }//奇数结束 printf("------------------\n"); }//正整数结束 }while(true); system("pause"); return 0; }