Day 8 算法笔记之入门模拟3.3 图形输出

目录

1.跟奥巴马一起学编程

2.输出梯形

3.Hello World for U

4.等腰梯形

5.沙漏图形 tri2str [1*+]


1.跟奥巴马一起学编程

#include <cstdio>
#include <cstring>
#include <math.h>


int main(){
	
	int col;
	char c;
	scanf("%d %c",&col,&c);
	
	for(int i=0;i<col;i++){
		printf("%c",c);
	}
	printf("\n\n");
	
	int row;
	
	if(col%2!=0){
		row = col/2+1;
	}else{
		row = col/2;
	}
	
	for(int i=0;i<row-2;i++){
		printf("%c",c);
		for(int j=0;j<col-2;j++){
			printf(" ");
		}
		printf("%c\n\n",c);
	}
	
	for(int i=0;i<col;i++){
		printf("%c",c);
	}
	
	
	
	
	return 0;
}

2.输出梯形

这一题没有明说是多组数据,但是如果用while EOF判断就会说答案错误

#include <cstdio>
#include <cstring>
#include <math.h>


int main(){
	
	int row;
	while(scanf("%d",&row)!=EOF){
		int x = 2*row-2;
		int y = row;
		
		for(int i=0;i<row;i++){
			for(int j=x;j>0;j--){
				printf(" ");
			}
			for(int m=y;m>0;m--){
				printf("*");
			}
			x-=2;
			y+=2;
			printf("\n");
		}
	}
	
	
	
	
	
	
	return 0;
}

3.Hello World for U

这题就是要自己推导行数,列数

#include <cstdio>
#include <cstring>
#include <math.h>


int main(){
	
	char martix[100];
	while(scanf("%s",martix)!=EOF){
		int len=strlen(martix);
	
		int n1 = (len+2)/3;
		int n3 = n1;
		int n2 = len-2*n1+2;
		
		for(int i=0;i<n1-1;i++){
			printf("%c",martix[i]);
			for(int j=0;j<n2-2;j++){
				printf(" ");
			}
			printf("%c",martix[len-i-1]);
			printf("\n");
		}
		
		for(int i=n1-1;i<n1+n2-1;i++){
			printf("%c",martix[i]);
		}
		printf("\n");
	}
	
	return 0;
}

4.等腰梯形

#include <cstdio>
#include <cstring>
#include <math.h>


int main(){
	
	int num;
	scanf("%d",&num);
	
	while(num--){
		int h;
		scanf("%d",&h);
		int row =h;
		
		int col = h +2*(h-1);
		
		int x = h - 1;
		
		for(int i=0;i<row;i++){
			for(int j=0;j<x;j++){
				printf(" ");
			}
			for(int m=0;m<h;m++){
				printf("*");
			}
			for(int j=0;j<x;j++){
				printf(" ");
			}
			x-=1;
			h+=2;
			printf("\n");
		} 
	}
	
	return 0;
}

5.沙漏图形 tri2str [1*+]

细节处理好,这一题只是烦琐而已,并不难。

#include <cstdio>
#include <cstring>
#include <math.h>


int main(){
	
	int num;
	while(scanf("%d",&num)!=EOF){
		
		int col = 2*num-1;
		
		int temp=0;//奇偶
		
		int k=0;//开头空格数 
		
		int current_col = num;//星星数
		
		for(int i=0;i<num;i++){
			if(temp%2==0){
				for(int m=0;m<k;m++){
					printf(" ");
				}
				for(int j=0;j<current_col-1;j++){
					printf("* ");
				}
				printf("*\n");
				k+=1;
				temp+=1;
				current_col-=1;
			}else{
				for(int m=0;m<k;m++){
					printf(" ");
				}
				for(int j=0;j<current_col;j++){
					printf("* ");
				}
				printf("\n");
				temp+=1;
				k+=1;
				current_col-=1;
			}
		}
//		printf("temp:%d k:%d current_col:%d",temp,k,current_col);
		current_col = 2;
		k-=2;
		for(int i=0;i<num-1;i++){
			for(int m=0;m<k;m++){
				printf(" ");
			}
			for(int j=0;j<current_col;j++){
				printf("* ");
			}
			printf("\n");
			k-=1;
			current_col+=1;
		}
		
	}
	
	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值