| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:第一次写成功的程序,大家看看能不能改简单点
只看楼主 加入收藏
從霝開匙
Rank: 1
等 级:新手上路
威 望:1
帖 子:79
专家分:0
注 册:2007-8-28
收藏
 问题点数:0 回复次数:4 
第一次写成功的程序,大家看看能不能改简单点
前几天看到一个题目
*
* *
* * *
* * * *
* * *
* *
*
小弟自己写了个程序,这是小弟写成功的第一个,不过还不完善,大家看看什么地方能改简单点,还有只支持单的双的有点位移
#include<iostream>
using namespace std;
void main()
{
int n;
cout<<"please enter the value of n:";
cin>>n;
for(int i=0;i<=n;i++)
{
for(int j=0;j<n;j++)
{
if(i<=(n/2+1))
{
if (j>=(n/2-i)&&j<=(n/2+i))
{
if (i%2==0&&j%2==0||i%2!=0&&j%2!=0)
cout<<"*";
else
cout<<" ";}
else
cout<<" ";}
else if(i>(n/2+1))
{
if (j>=(n/2-(n-i))&&j<=(n/2+(n-i)))
{
if (i%2==0&&j%2==0||i%2!=0&&j%2!=0)
cout<<"*";
else
cout<<" ";}
else
cout<<" ";}
}
cout<<endl;} }

感觉程序太复杂了,有没有大哥给个简单点的程序

[此贴子已经被作者于2007-9-21 14:09:48编辑过]

搜索更多相关主题的帖子: 成功 include please 
2007-09-21 13:50
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 

建议这样取n的意义

最中间一行长为 2*n+1

才不会出现输入偶数时难以处理的情况


C++学习
2007-09-21 14:48
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 

#include <iostream>

using namespace std;

#include<iostream>
int main()
{
int i,j,k,n;
cout << "input n: ";
cin >> n;
cout << endl;

for (i=0; i<=2*n; ++i)
{
k = i>n ? 2*n-i : i; //以中间行对称
for (j=0; j<=2*n; ++j)
{
if (((k+j)%2==0) && (abs(j-n)<=k)) //以中间列对称
cout << "*";
else
cout << " ";
}
cout << endl;
}
}

用的是以前一位版主发的方法:红色部分 if(abs(j-n)==k) 得到空心的图形


C++学习
2007-09-21 15:09
從霝開匙
Rank: 1
等 级:新手上路
威 望:1
帖 子:79
专家分:0
注 册:2007-8-28
收藏
得分:0 
if (((k+j)%2==0) && (abs(j-n)<=k))
这就是差距
呵呵,想不到这么好的解决办法

0→..................
2007-09-21 16:06
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
不好意思,刚才发现虽然那种程序可以画出正确的图形,但n为奇数时偏移了(因为我画偶数n图案作例子来看的,呵呵)

改一下:

if (((k+j-n)%2==0) && (abs(j-n)<=k))

[此贴子已经被作者于2007-9-21 16:11:57编辑过]


C++学习
2007-09-21 16:09
快速回复:第一次写成功的程序,大家看看能不能改简单点
数据加载中...
 
   



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

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