c语言输出菱形星号程序详解
初学者,麻烦哪位大大指引下#include"stdio.h"intmain(void){inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i...
初学者,麻烦哪位大大指引下
#include"stdio.h"
int main(void)
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
} 展开
#include"stdio.h"
int main(void)
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
} 展开
展开全部
#include"stdio.h"
int main(void){
int i,j,k;
for(i=0;i<=3;i++) { // 循环4次,打出前4行
for(j=0;j<=2-i;j++)//设定每行*前面的空格,每行都是2-i个
printf(" ");
for(k=0;k<=2*i;k++)//循环打出2*i-1个*号,
printf("*");
printf("\n"); //打完一行后换行
}
for(i=0;i<=2;i++) {//循环3次,打出后3行
for(j=0;j<=i;j++)//设定每行*前面的空格,每行都是i个
printf(" ");
for(k=0;k<=4-2*i;k++)//循环打出2*(2-i)个*号
printf("*");
printf("\n"); //打完一行后换行
}
return 0;
追问
上循环的最后一个FOR 为什么这样写
追答
我弄错了,是打出2*i+1个星号,i是从第0号开始的,第一行i=0
展开全部
#include <stdio.h>
int main() {
int total = 7;//每行空格 + 星号的总字符数
int x,j,k;//用做循环的变量
int xx,kg;//xx表示*号个数,kg表示空格个数(单边,左边)
xx = 1;//开始的时候,第一行*号个数为1
for(x = 0 ;x < 7;x++){ //一共输出7行
kg = (total - xx) / 2;//空格的个数等于总数 - *号个数,除以2就是单边的个数
for(j=0;j<kg;j++){
printf("%s"," ");//输出计算好的空格
}
for(k = 0;k<xx;k++){
printf("%s","*");//输出计算好的*号
}
printf("\n");
if(x < 3){
xx = xx + 2;//前面那3行的*号都是每次多2个
}else{
xx = xx - 2 ;//后面的星号就每次减少2个
}
}
return 0;
}
最后输出:
*
***
*****
*******
*****
***
*
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一些基本的语句你应该懂的吧。for是循环语句,printf是输出显示语句。如果你想显示一个m*n大小的菱形,你就自己看看那个地方该输出*,那个地方该输出空格,然后循环打印就行了。慢慢来,入门了就感觉简单多了
追问
流程看了半天,脑子快成浆糊了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在第二个for(i=0;i<=3;i++)
改为or(i=1;i<=3;i++)试试
改为or(i=1;i<=3;i++)试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个循环,输出一个5*5的菱形,你还要解释什么内容,请有针对性的问
更多追问追答
追问
算法
追答
你这个程序的算法是先输出一个上三角形,再输出一个下三角形,各用了一个循环
输出上角形:
for(i=0;i<=3;i++) //一、确定循环次数,输出几行
{
for(j=0;j<=2-i;j++) printf(" "); //二、确定每次空格的变化
for(k=0;k<=2*i;k++) printf("*"); //确定每行*的个数
printf("\n");
}
分析输出图可知:每行*的变化是1 3 5 7 前导空格的变化是3 2 1 0
根据规律,确定变量的变化就可以得到图形了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询