6个回答
展开全部
#include <stdio.h>
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先打印前4行
{
for(j=1;j<=4-i;j++) //每一行先打印需要打印的空格,空格数为(4 - 行号),譬如第1行,需要打4-1个空格,第2行需要打4-2个空格
printf(" ");
for(k=1;k<=2*i -1;k++) //打完空格打‘*',每行需要打印2倍行号+1个,譬如第1行打印2*1 - 1个,第2行打印2*2 - 1=3个
printf("*");
printf("\n");
}
for(i=1;i<=3;i++) //然后打印后面三行,行号从1开始计算
{
for(j=1;j<=i;j++) //每行打印空格数为行号数,譬如第1行打印1个,第2行打印2个
printf(" ");
for(k=1;k<=7-2*i;k++) //每行打印7-2*i个’*',譬如第1行打印7-2*1=5个,第2行打印7-2*2=3个
printf("*");
printf("\n");
}
}
void main()
{
int i,j,k;
for(i=1;i<=4;i++) //先打印前4行
{
for(j=1;j<=4-i;j++) //每一行先打印需要打印的空格,空格数为(4 - 行号),譬如第1行,需要打4-1个空格,第2行需要打4-2个空格
printf(" ");
for(k=1;k<=2*i -1;k++) //打完空格打‘*',每行需要打印2倍行号+1个,譬如第1行打印2*1 - 1个,第2行打印2*2 - 1=3个
printf("*");
printf("\n");
}
for(i=1;i<=3;i++) //然后打印后面三行,行号从1开始计算
{
for(j=1;j<=i;j++) //每行打印空格数为行号数,譬如第1行打印1个,第2行打印2个
printf(" ");
for(k=1;k<=7-2*i;k++) //每行打印7-2*i个’*',譬如第1行打印7-2*1=5个,第2行打印7-2*2=3个
printf("*");
printf("\n");
}
}
展开全部
设立一个for循环,用一个变量i控制行数,再用一个变量j控制每打印*和' '的个数,利用printf函数输出字符串的强大控制功能实现。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int i,j;
for(j=1,i=0;i<7;i++,i<4 ? j+=4 : j-=4)
printf("%*.*s\n",48+j/2,j,"* * * * * * *");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哥就不想用迭代,用2为标记数组吧,为1的打印。 Code as follow:
# include <stdio.h>
int main()
{
int i, j;
/*
*初始化标记数组
*/
int flag[7][7] = {0};
for (i = 0; i < 7; i++)
flag[i][3] = 1;
for (i = 1; i < 6; i++){
flag[i][2] = 1;
flag[i][4] = 1;
}
for (i = 2; i < 5; i++){
flag[i][1] = 1;
flag[i][5] = 1;
}
flag[3][0] = 1;
flag[3][6] = 1;
for (i = 0; i < 7; i++){
for (j = 0; j < 7; j++){
if (flag[i][j] == 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
# include <stdio.h>
int main()
{
int i, j;
/*
*初始化标记数组
*/
int flag[7][7] = {0};
for (i = 0; i < 7; i++)
flag[i][3] = 1;
for (i = 1; i < 6; i++){
flag[i][2] = 1;
flag[i][4] = 1;
}
for (i = 2; i < 5; i++){
flag[i][1] = 1;
flag[i][5] = 1;
}
flag[3][0] = 1;
flag[3][6] = 1;
for (i = 0; i < 7; i++){
for (j = 0; j < 7; j++){
if (flag[i][j] == 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个变量 一个控制空格
一个控制*就可以了
一个控制*就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询