- // 打印星星三角形
- // 尾尾 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;
- }
复制代码 |