C语言:在屏幕上用*输出个菱形,要求菱形的行数是从键盘上输入的 应该怎么做呢?

详细的问题说明,有助于回答者给出准确的答案... 详细的问题说明,有助于回答者给出准确的答案 展开
 我来答
lostman250
2008-12-28 · TA获得超过412个赞
知道小有建树答主
回答量:270
采纳率:0%
帮助的人:363万
展开全部
#include <iostream.h>
#include <stdio.h>
void main()
{
int n;
printf("请输入行数:");
scanf("%d",&n);
int i,j;
if(n%2==0)//偶数
{
for(i=0;i<n/2;i++) // 偶数时,从0行开
{
for(j=0;j<n/2-1-i;j++)
cout<<" ";
for(j=0;j<2*i+1;j++)
cout<<"*";
cout<<endl;
}

for(;i<=n;i++)
{
for(j=0;j<i-n/2;j++) // 第n/2行也为最多*

cout<<" ";
for(j=0;j<n-1-(i-n/2)*2;j++)
cout<<"*";
cout<<endl;
}
}
else //奇数时
{
for(i=0;i<=n/2;i++) // 从第0行开始计算,第n/2行*最多 (此行*为n个)
{
for(j=0;j<n/2-i;j++)
cout<<" ";
for(j=0;j<2*i+1;j++)
cout<<"*";
cout<<endl;
}
for(;i<=n;i++)
{
for(j=0;j<i-n/2;j++) //i-n/2 表示在第n/2行往下 的第几行中
cout<<" ";
for(j=0;j<n-(i-n/2)*2;j++)
cout<<"*";
cout<<endl;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
战雨灾
2008-12-30 · 超过26用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:53.7万
展开全部
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++){
j = n+i;
while(j--){
printf("%s",j>2*i?" ":"*");
}
printf("\n");
}
for(i=n-1;i>0;i--){
for(j=0;j<n+i-1;j++){
printf("%s",j<n-i?" ":"*");
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式