| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1375 人关注过本帖
标题:劳驾各位给指点一下。。感谢
只看楼主 加入收藏
taojingwen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-5-5
收藏
 问题点数:0 回复次数:16 
劳驾各位给指点一下。。感谢

预想编一个根据输入的行数确定一个菱形。。例如:输入3。。得到
*
* *这样的一个形状。。。
*

我在VC++6.0中总是得不到正确的结果。麻烦各位看看。。

#include<iostream.h>


char main()
{
int n,i,j;
char star[30][30];
cout<<"Input How many lines do you want?(MAX is 30,MIN is 3)"<<endl;
cin>>n;

if(n>=3&&n<=30)
{




if(i=0||n-1)
{


if (j=(n-1)/2)
{
star[i][j]='*';
}
else
{
star[i][j]=' ';
};

}

else if(i=(n-1)/2)
{
//for(j=0;j<n;j++)
if (j=0|(n-1))
{
star[i][j]='*';
}

else
star[i][j]=' ';

}


else{
while(i>=1&&i<(n-1)/2)
{if(j=(n-1)/2+i||(n-1)/2-i)
{
star[i][j]='*';
star[i][j]='*';
}
else
star[i][j]=' ';
};


while(i>(n-1)/2&&i<n-1)
{if(j=(n-1)/2+i||(n-1)/2-i)
{
star[i][j]='*';
star[i][j]='*';
}
else
star[i][j]=' ';

};

};


for(i=0;i<n;i++)
for(j=0;j<n;j++)
cout<<star[i][j]<<endl;

}
else
cout<<"ERROR!Input Again."<<endl;

};

[此贴子已经被作者于2007-8-14 15:22:21编辑过]

搜索更多相关主题的帖子: 劳驾 感谢 
2007-08-14 15:17
taojingwen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-5-5
收藏
得分:0 

劳驾各位高手给我说说吧。。
迷惑中!


I Believe I Can Fly
2007-08-14 15:25
不会编程
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-7-8
收藏
得分:0 
如果输入的是偶数,会怎么样?
2007-08-14 15:41
neverDie
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2007-5-5
收藏
得分:0 
输入3
*
* *
*

输入4
*
* *
* *
*

这样吗?

2007-08-14 16:55
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

偶数无法形成菱形...只能象neverDie说的形成平行四边形


女侠,约吗?
2007-08-15 00:57
taojingwen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-5-5
收藏
得分:0 

是这样的,输入“3”,那么会出现的图形是:(输入的行数是:除中线之外上、下两部分的行数)

图片附件: 游客没有浏览图片的权限,请 登录注册


输入“4”的话,则上下各增加一行。如图:

图片附件: 游客没有浏览图片的权限,请 登录注册


以此类推。。

[此贴子已经被作者于2007-8-15 23:20:24编辑过]


I Believe I Can Fly
2007-08-15 23:12
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 

给你写了一个,自己参考一下吧~

[CODE]
#include<iostream>
using namespace std;

void main()
{
int i=0, j=0, k=0, line=0;
cout<<"请输入行数,以得到一个菱形!"<<endl;
cin>>line;

for( k=0; k<=line; ++k ) //打印上半部分
{
for( i=0; i<=2*(line-k); i++ ) //先打印出空格
{
cout<<" ";
}
cout<<"*"; //再打印出*

for( j=1; j<=4*(k-1)+3; j++ ) //又一次打印空格
{
cout<<" ";
}

if( k!=0 ) cout<<"*";
cout<<endl;
}

for( k=line-1; k>=0; k--) //打印下半部分
{
for( i=0; i<=2*(line-k); i++ )
{
cout<<" ";
}
cout<<"*";

for( j=1; j<=4*(k-1)+3; j++ )
{
cout<<" ";
}

if( k!=0 ) cout<<"*";
cout<<endl;
}
}

[/CODE]


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-08-16 02:07
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
似曾相识

Fight  to win  or  die...
2007-08-16 10:43
taojingwen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-5-5
收藏
得分:0 

请问:7楼的同学。。你程序里的i,j代表什么意思呢?
还想问问,可以用二维数组做吗?


I Believe I Can Fly
2007-08-17 10:01
taojingwen
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-5-5
收藏
得分:0 


大家来帮我看看。这段程序怎么运行不起来呢?编译通过了。





#include<iostream.h>


char main()
{
int n;
char star[15][15];
cout<<"Input How many lines do you want?(MAX is 14,MIN is1)"<<endl;
cin>>n;

if(n>=0&&n<=14)
{ int i,j;
for(i=0;i<15;i++)

{
{ while((i=0)||(i=n-1)) //在最上、下的顶点。
{
for(j=0;j<15;j++)
{
if(j!=7)
star[i][j]=' ';
else
star[i][j]='*';
}
}
while(i=(n-1)/2) //最左、右的顶点。
{for(j=0;j<15;j++)
if((j!=(7-n))&&(j!=(7+n)))
star[i][j]=' ';
else
star[i][j]='*';
}
while((i<(n-1)/2)&&(i>0)) //上半边的点。
{
for(j=0;j<=7;j++)
{
if((j>=0)&&(j<=7))
{ i=1,j=1;
star[i][7-j]='*';
star[i][7+j]='*';
i++;
j++;
}
else
star[i][j]=' ';
}
}
while((i<n-1)&&(i>(n-1)/2)) //下半边的点。
{for(j=0;j<=7;j++)
{
if((j>=0)&&(j<=7))
{ i=1,j=1;
star[i][7-j]='*';
star[i][7+j]='*';
i++;
j++;
}
else
star[i][j]=' ';
}
}

cout<<star[i][j]<<endl;
}
}
}
else
cout<<"ERROR!Input Again."<<endl;



return 0;

}


I Believe I Can Fly
2007-08-17 10:11
快速回复:劳驾各位给指点一下。。感谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020039 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved