C++编写下列两个程序!!!
使用循环语句,写两个程序,分别打印由星号组成的空心菱形图案和十字菱形图案,图案的行数n由控制台输入,如当n=7时,打印如下图...
使用循环语句,写两个程序,分别打印由星号组成的空心菱形图案和十字菱形图案,图案的行数n由控制台输入,如当n=7时,打印如下图
展开
1个回答
展开全部
//第一个图
#include<stdio.h>
int main()
{
孝困 int n,i,j,sp,flag=0,ch;
scanf("%d",&n);
sp = n/2;
ch=1;
for(i=0; i<n; i++)
{
for(j=0; j<sp; j++)
printf(" ");
for(j=0; j<ch*2-1; j++)
{
if(j==0 || j==ch*2-2) printf("*");
else printf(" ");
}
if(flag==0)//flag控制上三角和下三角。flag=0表示上三角
{
sp--;//控制空格个兆慎做数
ch++;//控制字符个数
if(sp==0) flag=1;
}
else
{
sp++;
ch--;
}
printf("\n");
}
return 0;
}
测试结果:
//第二个图
#include<stdio.h>
int main()
{
int n,i,j,sp,flag=0,ch;
scanf("%d",&n);
sp = n/2;
ch=1;
for(i=0; i<n; i++)
{
for(j=0; j<sp; j++)
printf(" ");
for(j=0; j<ch*2-1; j++)
{
if(j==0 || j==ch*2-2 || j==ch-1 || i==n/2) printf("*");
else printf(" ");
}
if(flag==0)
{
sp--;
ch++;
if(sp==0) flag=1;
}
else
{
族衡 sp++;
ch--;
}
printf("\n");
}
getch();
return 0;
}
测试结果:
两个代码很相似,只是输出字符位置有点不同,你看看,有问题可以追问。
追问
我是大一新生 新手 有些地方看不懂 怎么没COUT 是不是和printf相同?
追答
你用的是c++是吧
这个是c语言写的,你改一下头文件为:#include,把原来的头文件去掉,文件里面的getch()函数去掉。把scanf("%d",&n);改成cin>>n;把printf改成cout<<" "和cout<<"*"就可以了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询