#include<iostream>#include<cmath>usingnamespace std;intmain(){int n,m;char c;cin>>n>>c;for(int i =0; i < n;++i){cout<<c;}cout<<endl;m=round(1.0*n/2)-2;//round里面不能直接写n/2,因为n/2已经是一个整数了for(int i =0; i < m;++i){cout<<c;for(int j =0; j < n-2;++j){cout<<' ';}cout<<c<<endl;}for(int i =0; i < n;++i){cout<<c;}return0;}
输出梯形
#include<iostream>usingnamespace std;intmain(){int h;while(cin>>h){for(int i =0; i < h;++i){for(int j =0; j <2*h-2*(i+1);++j){cout<<' ';}for(int j =0; j < h+2*i;++j){cout<<'*';}cout<<endl;}}return0;}
Hello World for U
#include<iostream>#include<cstring>usingnamespace std;constint maxn=81;intmain(){char str[maxn];cin>>str;int len=strlen(str);int side=(len+2)/3;int mid=len-side*2;for(int i =0; i < side-1;++i){cout<<str[i];for(int j =0; j < mid;++j){cout<<' ';}cout<<str[len-i-1];cout<<endl;}for(int i = side-1; i <=len-side;++i){//一列有side个字符,所以最后一行起始数字的数组下标为side-1//从末尾往前第side个字符的下标是len-sidecout<<str[i];}return0;}
等腰梯形
注意输出后面的空格
注意第一行的空格数是h-1个
#include<iostream>usingnamespace std;intmain(){int m,h;while(cin>>m){for(int i =0; i < m;++i){cin>>h;for(int k =0; k < h;++k){for(int j =0; j < h-k-1;++j){cout<<' ';}for(int j =0; j < h+2*k;++j){cout<<'*';}for(int j =0; j < h-k-1;++j){cout<<' ';}cout<<endl;}}}return0;}
沙漏图形
#include<iostream>usingnamespace std;intmain(){int n;while(cin>>n){for(int i =0; i < n;++i){for(int j =0; j < i;++j){cout<<' ';}for(int j =0; j < n-i;++j){if(j<n-i-1) cout<<'*'<<' ';else cout<<'*';}cout<<endl;}for(int i =0; i < n-1;++i){for(int j =0; j <(n-2-i);++j){cout<<' ';}for(int j =0; j < i+2;++j){if(j<i+1) cout<<'*'<<' ';else cout<<'*';}cout<<endl;}}return0;}