黑马程序员技术交流社区
标题:
打印正三角形&&倒三角形完美版
[打印本页]
作者:
尾尾
时间:
2015-9-25 22:04
标题:
打印正三角形&&倒三角形完美版
用户可以输入需要的行数.
供大家参考
作者:
尾尾
时间:
2015-9-25 22:06
// 打印星星三角形
// 尾尾 2015 09 24
/*
*******
1234567
1 *
2 ***
3 *****
4 *******
当x+y=5时开始打印星星
当x-y=3时不再打印星星
多画几个星星三角形可以发现:
列与行的和>=行数+1,并且 列与行的差<=行数-1时,打印星星
其他时候打印空格即可
*/
#include<stdio.h>
void zheng(){//打印正三角形星星
int n;//行数
int m;//列数
printf("请输入需要的行数:\n");
scanf("%d",&n);
m=(n+(n-1));
for(int x=1;x<n+1;x++){//外部循环每循环一次是一行
for(int y=1;y<m+1;y++){//内部循环每循环一次是一列
int sum=x+y;//列与行的和
int cha=y-x;//列与行的差
if((sum>=(n+1))&&(cha<=(n-1))){//判断是否要打印星星
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
}
void dao(){//打印倒三角形星星
int n;//行数
int m;//列数
printf("请输入需要的行数:\n");
scanf("%d",&n);
m=(n+(n-1));
for(int x=1;x<n+1;x++){//外部循环每循环一次是一行
for(int y=1;y<m+1;y++){//内部循环每循环一次是一列
int sum=x+y;//列与行的和
int cha=y-x;//列与行的差
if((sum<=(2*n))&&(cha>=0)){//判断是否要打印星星
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
}
int main(){
int choice;//用户选择
while(1){
printf("--------------------\n请选择要使用的功能:\n1:打印正三角形星星\n2:打印倒三角形星星\n3:退出\n--------------------\n");
scanf("%d",&choice);
switch(choice){
case 1:
zheng();
break;
case 2:
dao();
break;
case 3:
printf("感谢您的使用,再见!----O(∩_∩)O尾尾\n");
return 0;
default:
printf("您输入的是%d输入有误,请重新输入!\n",choice);
continue;
}
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2