1.代码
#include<stdio.h>
#include"Windows.h"
int main()
{int i,j,k,n,m,a,b;for(i=1;i<=3;i++) {if(i==1){printf(" "); printf("*****");printf(" ");printf("*****"); }else{for(j=1;j<= -2*(i-1)+5;j++){printf(" ");}for(k=1;k<=4*(i-1)+5;k++){printf("*");}}if(i>1){for(m=1;m<=-4*(i-1)+9;m++){printf(" ");}for(n=1;n<=4*(i-1)+5;n++){printf("*");}}printf("\n");}for(i=4;i<=6;i++){for(j=1;j<=29;j++){printf("*");}printf("\n");}if(i==7){printf(" ");for(j=1;j<=27;j++){printf("*");}printf("\n");}for(i=8;i<=13;i++){for(a=1;a<=2*i-13;a++){printf(" ");}for(b=1;b<=-4*(i-7)+27;b++){printf("*");}printf("\n");}printf(" *");printf("\n\n\n");system("color 7c");//在此处修改背景颜色和爱心颜色 return 0;
}
2.思路
代码总共分为 7 部分,
定义变量 i 控制行数的变化。
第一部分:利用for循环打印第一行;注意空格数和*的数量
for(i=1;i<=3;i++) {if(i==1){printf(" "); printf("*****");printf(" ");printf("*****"); }
第二部分:打印二三行前半部分。
设置 j 控制空格的增量。第二行开始从五个空格开始递减,每行递减2个,并且关注空格数量与行数的关系,故设置j<= -2*(i-1)+5
设置 k 控制*的增量。第二行开始从五个“*”开始递增,每行递增4个,并且关注“*”的数量与行数的关系,故设置k<=4*(i-1)+5。
else{for(j=1;j<= -2*(i-1)+5;j++){printf(" ");}for(k=1;k<=4*(i-1)+5;k++){printf("*");}
第三部分:打印二三行后半部分
规律同上,不在赘述。
if(i>1){for(m=1;m<=-4*(i-1)+9;m++){printf(" ");}for(n=1;n<=4*(i-1)+5;n++){printf("*");}}printf("\n");
注意:
换行符的位置,在第一个for循环的末尾。
第四部分:因为4,5,6数量相同,用for循环输出第四,五,六行,不要忘了加换行符哦,
(我差点忘了)
for(i=4;i<=6;i++){for(j=1;j<=29;j++){printf("*");}printf("\n");}
第五部分:输出第7行,注意空格数量和“*”的数量。
if(i==7){printf(" ");for(j=1;j<=27;j++){printf("*");}printf("\n");}
第六部分:打印8到13行。
以最后一行为准找规律,设置 a 控制空格的增量。第8行开始,空格开始递增,每行递增2个,并且关注空格数量与行数的关系,故设置a<=2*i-13。
以第7行为准找规律,设置 b 控制“*”的增量。第7行开始从27个“*”开始递增每行递减4个,并且关注“*”数量与行数的关系,故设置b<=-4*(i-7)+27 。
注意在最外层循环要加换行符。
for(i=8;i<=13;i++){for(a=1;a<=2*i-13;a++){printf(" ");}for(b=1;b<=-4*(i-7)+27;b++){printf("*");}printf("\n");}
第7部分:直接打印最后一行。
printf(" *");
给爱心换颜色
加头文件
#include"Windows.h"
颜色属性由两个十六进制数字指定
第一个数对应背景,第二个数对应前景,
每个数字可以为以下任何值:
0=黑色 8=灰色
1=蓝色 9=淡蓝色
2=绿色 A=淡绿色
3=浅绿色 B=淡浅绿色
4=红色 C=淡红色
5=紫色 D=淡紫色
6=黄色 E=淡黄色
7=白色 F=亮白色
就写到这吧,代码有点复杂,目前就这水平了