注册 登录
编程论坛 C++教室

新学C++ 求个算法

沉沦过迁 发布于 2007-11-05 20:58, 683 次点击

打印出以下图形 每行都只能够是奇数
AAAAAAA
AAAAA
AAA
A

8 回复
#2
blueboy820062007-11-05 21:53
不是很难哦……
#include<iostream>
const int N(3);
using namespace std;
int main()
{
int n=N;
int i,j;
while(n>=0)
{
for(j=-n;j>-N;j--)
cout<<" ";
for(i=-n;i<=n;i++)
{

cout<<"A";
}
cout<<endl;
n--;
}
return 0;
}
#3
csmenglei9512007-11-05 21:59
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char *p= new char[7];
p="AAAAAAA";

for(int i=0;i<=3;i++)
{
p+=2*i;
cout<<setw(7-i)<<p<<endl;
p-=2*i;
}
return 0;
}
我的这个也还凑合..
#4
yjbgwxf20082007-11-05 23:40
#include <iostream.h>
void main()
{
int a,b,c;
char ch;
cout<<"How many lines?"<<endl;
cin>>a;
cout<<"What character?"<<endl;
cin>>ch;
for (b=a;b>=1;b--)
{
for(c=1;c<=2*a;c++)
{
if((1-b)<=(c-a)&&(c-a)<=(b-1))
cout<<ch;
else cout<<" ";
}
cout<<endl;
}
}
a是三角形的行数,输入ch值时输入A
#5
忘记喧嚣2007-11-06 12:26
顶三楼 呵呵.
setw(n) 函数. 按N个域宽输出.默认右对齐.
感觉比较简单 呵呵 而且可以变换很多出来
#6
孤魂居士2007-11-06 15:42
....
#7
孤魂居士2007-11-06 15:45
\\\
只有本站会员才能查看附件,请 登录

#8
沉沦过迁2007-11-06 21:25
谢谢
#9
jonc2007-11-09 20:16
顺便发个
#include<iostream>
using namespace std;
class tower
{
public :
tower();
void settower();
void print()const;
void printright()const;
private:
int num;
int row;
};
tower::tower()
{
settower();
}
void tower::settower()
{
int i;
cin>>i;
num=i;
row=(i+1)/2;
}
void tower::print()const
{
int i,j;
for(j=0;j<row;j++)
{
for(i=0;i<num;i++)
{
if((i<j)||(i>num-j-1))
cout<<" ";
else
cout<<"A";
}
cout<<"\n";
}
}
void tower::printright()const
{
int i,j;
for(j=0;j<row;j++)
{
for(i=0;i<num;i++)
{
if((i<row-1-j)||(i>row-1+j))
cout<<" ";
else
cout<<"A";
}
cout<<"\n";
}
}
int main()
{
tower t;
t.print();
cout<<endl;
t.printright();
return 0;
}
1