目录
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;
}