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

[求助]一个很简单的问题

lizard99 发布于 2006-05-01 20:46, 2578 次点击
打印如下形式的杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
.
.
.


我是以直角三角形方式生成数据 想以上面的形式输出

我刚学不久 别用太深奥的.............
54 回复
#2
lizard992006-05-01 20:56

上面的三角形我打的斜了
凑合着看吧
song4回答我

#3
wfpb2006-05-01 21:08

直角三角形 ? 怎么计算弄直角出来啊?

#4
lizard992006-05-01 21:14
二维数组
比如 输出前10行
for(i=0;i<10;i++)
{a[i][0]=1;a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];

输出这个二维数组 得到的就是直角的

怎么以上面的形式输出呢
#5
song42006-05-01 21:21
wfpb
我们关系不错吧
他是我女朋友
快帮我摆平他,我说话他.......
#6
lizard992006-05-01 21:25
song4 不在这跟你吵架
你说的根本就不对啊
有没有高手来指点一下啊
#7
wfpb2006-05-01 21:51

哦. 那你是要看起来是个直角三角形就可以了还是要精确的啊

#8
wfpb2006-05-01 22:02

你真女朋友啊?给你个看起来是指教的三角形,没有用setw(),呵呵!

#9
gototheworld2006-05-02 01:18
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a[5][5] = {0};
for(int i = 0; i < 5; i++)
{
cout<<setfill(' ')<<setw(8-i);
for(int j = 0; j <= i; j++)
{
if(j == 0 || j == i)
{
a[i][j] = 1;
cout<<1<<" ";
}
else
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
cout<<a[i][j]<<" ";
}
}
cout<<endl;
}
system("pause");
return 0;
}

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请按任意键继续. . .

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a[5][5] = {0};
for(int i = 0; i < 5; i++)
{
for(int j = 0; j <= i; j++)
{
if(j == 0 || j == i)
{
a[i][j] = 1;
cout<<setfill(' ')<<setw(4)<<1<<" ";
}
else
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
cout<<setfill(' ')<<setw(4)<<a[i][j]<<" ";
}
}
cout<<endl;
}
system("pause");
return 0;
}

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
请按任意键继续. . .
#10
wfpb2006-05-02 01:32

哈哈,我还以为我给了呢,忘记了,呵呵.
#include <iostream>
using namespace std;

int main()
{
const int N=5;
int i,a[N][N];
//给出两边
for(i=0;i<N;i++)
{a[i][0]=1;a[i][i]=1;}
//给出关系
for(i=2;i<N;i++)
for(int j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
//输出直角三角形
for (int i=0;i<N;i++)
{
for (int j=0;j<2*(N-i-1);j++)
cout<<" ";
for (int n=0;n<i+1;n++)
{
cout<<a[i][n];cout<<" ";
}
cout<<endl;
}
system("pause");
return 0;
}

#11
song42006-05-02 02:55
以下是引用lizard99在2006-5-1 21:25:00的发言:
song4 不在这跟你吵架
你说的根本就不对啊
有没有高手来指点一下啊

大哥 ,你那个操作系统不行
并且我只是说了我的思路,你怎么知道不行
哎,管不住了.惭愧
怎么样我们这里高手很多.

#12
guang2006-05-02 08:43

如果没特别的要求,几个输出语句就可以了,以前的帖有的!

#13
lizard992006-05-02 08:45
大哥们啊
你们那写太深奥了
我刚学 看不懂啊
不会用cout........什么的
我又不是专业学C++的
算了 自己钻研吧
#14
lizard992006-05-02 08:54
[QUOTE]

如果没特别的要求,几个输出语句就可以了,以前的帖有

[/QUOTE]

就是那几个输出语句不会写啊
#15
wfpb2006-05-02 10:36
to gototheworld:
他要输出的是直角三角形,OK? 你第一个是直角的?
#16
song42006-05-02 11:56
去C去吧
你那个这里不行
LIZARD
#17
lizard992006-05-02 12:17
我要输出的不是直角的
直角的我会
12楼的理解是正确的
#18
wfpb2006-05-02 12:21

直角你会?

我说的是
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
这样的等腰直角三角形

#19
lizard992006-05-02 12:26
直角我当然会
我不是写了个程序段吗
用TC 输出就是直角
#20
lizard992006-05-02 12:27

我不会你说的那个
会还用你们这些高手帮忙了吗

#21
wfpb2006-05-02 13:58

我也是菜鸟,给你的那个就是这个样子的图形的程序

#22
jerryzeng012006-05-02 14:35
10 楼的有点搞笑了吧,竟然用c++编
#23
wfpb2006-05-02 17:23
难道不能吗?
#24
lizard992006-05-02 21:02

能 不过用C简单一点

#25
飞翔翅膀2006-05-02 21:06
[求助]怎么C编写菜单啊,忘大家给点建议啊!
#26
zhaoyang2006-05-03 12:52

你懂java吗?
以下是java编的输出任意行的杨辉三角:
import java.io.*;

public class Main {


public static void main(String[] args) throws IOException {
InputStreamReader Reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(Reader);
System.out.println("请输入你想要的杨辉三角的行数");
String s=input.readLine();
int n=Integer.parseInt(s);
System.out.println("行数为:"+n);
while(n<1)
{System.out.println("输入的行数应大于1的整数,请重新输入");
System.out.println("请输入你想要的杨辉三角的行数");
s=input.readLine();
n=Integer.parseInt(s);
}
int[][] a=new int[n][];
for(int i=0;i<a.length;i++)
{
a[i]=new int[i+1];
a[i][0]=1;
a[i][i]=1;
}
for(int i=1;i<a.length;i++)
{
for(int j=1;j<a[i].length-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
System.out.println("以下就是所需杨辉三角");
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a[i].length;j++)
System.out.print(" "+a[i][j]+" ");
System.out.println();
}
try
{
System.in.read();
}
catch(Exception e)
{
}
}
}

#27
song42006-05-05 16:43

#include <stdio.h>
void main()
{
static a[10][10];
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1; a[i][i]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(int z=9-i;z>0;z++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%3d",a[i][j]);
printf(" ");
}
printf("\n");
}
}
下次上C问吧
这次我用C编了

#28
andyss2006-05-05 16:59
这个在C语言板块里多的很,去查一下就知道了!
#29
wfpb2006-05-05 18:37
没学过C语言,所以只能用C++编
#30
求C似渴2006-05-08 19:37

#include<iostream.h>
void main( )
{

cout<<" 1 "<<endl;
cout<<" 1 1 "<<endl;
cout<<" 1 2 1 "<<endl;
cout<<" 1 3 3 1 "<<endl;
cout<<" 1 4 6 4 1 "<<endl;
}

#31
求C似渴2006-05-08 19:47
27楼的!!!!你也太不负责了吧!!!!你那玩意儿无法输出!!!
#32
tomry66662006-05-08 20:06
偶来搞个~~
#include <stdio.h>
#include <iostream.h>
main()
{
int n,k,i,m,look;
cin>>n;
int s[100]={1};
for(m=1;m<=n;++m)
{
k=m;
for(;k<n;++k)printf(" ");
for(i=(n-1);i>0;--i)s[i]=(s[i]+s[(i-1)]);
for(i=0;i<n;++i)if(s[i]!=0)printf("%d ",s[i]);
printf("\n");
}
cin>>look;
}
#33
song42006-05-08 20:29
以下是引用求C似渴在2006-5-8 19:47:00的发言:
27楼的!!!!你也太不负责了吧!!!!你那玩意儿无法输出!!!

汗....
谢谢这个仁兄,帮我找到对于我们来说,最讨厌的错误,我以后会注意的
(我就按上面的贴的思路打的,打++打顺手了)
#include <stdio.h>
void main()
{
static a[10][10];
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1; a[i][i]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(int z=9-i;z>0;z--)//决不能饶恕的错误
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%3d",a[i][j]);
printf(" ");
}
printf("\n");
}
}

#34
求C似渴2006-05-08 20:36
还是我的简单!!!
#35
求C似渴2006-05-08 20:38
C++设计工作平台就有纠错了呀!!!!
#36
求C似渴2006-05-08 20:42
老兄会编密码破译程序吗?
#37
求C似渴2006-05-08 20:45
#include<iostream.h>
void main( )
{

cout<<" 1 "<<endl;
cout<<" 1 1 "<<endl;
cout<<" 1 2 1 "<<endl;
cout<<" 1 3 3 1 "<<endl;
cout<<" 1 4 6 4 1 "<<endl;
}
#38
song42006-05-10 14:04
楼上麻烦输出50*50的
#39
求C似渴2006-05-11 18:47

你定义的Static静态变量是多余的!直接定义个int就ok了!你的静态变量定义的作用域和一般定义的作用域一样的!看来你对静态局部变量的含义和作用没搞的很明白。一般Static变量最适用于循环语句内。

#40
song42006-05-12 08:13
大家都知道,那是因为我根据前面的人编的,你看楼主的帖了?我是把主要的复制给他修改的
一般Static变量最适用于循环语句内
我不认同
for()里面的记数变量本来就只能定义一次
为什么还用static?
并且这样会减少程序运行效率
因为系统需要去数据区取static,用汇编语言你会发现这样操作时间会是用局部变量(没加static)
的4倍.所以你那样代价很大,特别是大程序
static一般用于类的静态成员和函数等特殊地方
#41
xialup2006-05-12 13:56
37楼的实在是太经典了`~~~
#42
aogun2006-05-12 15:57
偶第一次听说静态变量适用于循环语句中
#43
wfpb2006-05-12 16:33

静态变量的特性:
比如,在函数局部变量中,存在static变量,则他不同于其他局部变量的地方就在于,其他局部变量在函数结束后,都被释放,而static却未被释放,我想,这种特性,就应该是其功能的部分体现吧

#44
求C似渴2006-05-12 16:55
说的完全正确!我就是利用其特点进行循环的!其实40楼的也有道理..
#45
求C似渴2006-05-12 16:56
41楼的我还有更经典的!哈哈
#46
wfpb2006-05-12 18:44

求饥似渴,你过了计算机5级?有这个等级吗?我在VC++那里看到你说的

#47
求C似渴2006-05-12 19:01

我正打算这么做!呵呵......

#48
求C似渴2006-05-12 19:13
你计算机过了多少级?
#49
wfpb2006-05-12 19:19
一级没过
#50
wfpb2006-05-12 19:20
我想考程序员!不知道,考4级有什么用?
#51
求C似渴2006-05-13 03:50

呵呵,那到时候你的本事就大了,只要跟网字占边的,都怕你!哈哈...不信你考考试试!

12