c++编写杨辉三角

//杨辉三角;#include<iostream>usingnamespacestd;intmain(){inta,i;cout<<"pleaseinputa:";cin... //杨辉三角;

#include <iostream>
using namespace std;

int main()
{
int a,i;

cout<<"please input a:";
cin>>a;
if(cin.fail()) //错误则返回 ?
return 1; //?

for(i=1;i<=a;i++) {
int m = 1;

while(m<=i) {
cout<<m;
m++;
}

int n = i-1;
while(n) {
cout<<n--; }
cout<<endl;
}
return 0;
}
//好多变量都是在要使用时才突然来个声明;这样好嘛?问~
这个杨辉三角代码看不懂,麻烦哥哥帮我写注释,写的详细细的~~或者杨辉三角c++程序该怎么写了?
展开
 我来答
小多多呗5
2021-09-22
知道答主
回答量:4
采纳率:0%
帮助的人:1658
展开全部

代码:

#include <iostream>

using namespace std;



int main()

{

//输入n,表示1~n行 

long long n;

cout << "输入n:" <<endl;

cin >> n;

//定义n * n大的二维数组 

long long a[n][n];

//开始存数 

for (int i = 1;i <= n;i++)

{

//定义两条边上的1 

a[i][i] = 1;

a[i][1] = 1;

    }

    //从第三行开始累加 

for (int i = 3;i <= n;i++)  

{

//每行从第二个累加 

for (int j = 2;j <= i - 1;j++) 

{

//第a[i][j]项等于左上的项加右上的项即 a[i][j] = a[i - 1][j - 1] + a[i - 1][j] 

a[i][j] = a[i - 1][j - 1] + a[i - 1][j];

}

    

    

    //输出杨辉三角

//双重for循环 

for (int i = 1;i <= n;i++)

{   

for (int j = 1;j <= i;j++)   

{

cout << a[i][j] << " ";

}

//输出完一行后换行 

cout << endl;

}

cout << endl;

//这里的cout << endl可以不写,因为后面有return 0 

return 0;

}

输入样例:

输出样例:

terranlong
2012-02-27 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3990万
展开全部
你好,你那个不是杨辉三角,写成以下的才是:
#include<iostream>
using namespace std;

void pt(int n)
{
int a[20][20],i,j; //申明二维数组,和标记变量;i标记二维数组的行,j--列;

for(i=0;i<n;i++) //既然我选择了规规矩矩的下标从0开始访问,那么就要注意i最大取几?
//从第一行开始,下标0;
{
a[i][0]=1; //依次对每行(下标*)第一列(下标0)赋值1; //第一列都是1了;
a[i][i]=1; //对角斜线都是1; //注意赋值方向;
}

for(i=2;i<n;i++) //从第三行(数组下标2)开始,一直到n行(数组下标n-1);
// {
//双重循环对二维数组元素操作;
for(j=1;j<i;j++) //从第二列(--1)开始,一直到--
//厉害,j<i;要对杨辉三角图形实质关系研究透彻!

a[i][j]=a[i-1][j-1]+a[i-1][j]; //对杨辉三角其他位置赋值
// }不要{},でも???
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++) //********************这里j<=i就能控制第一行打印1个,第二行打印2个
cout<<" "<<a[i][j]; //这2步在一行行的输出 ;

cout<<endl; //英语endl:换行;
} //本{};是为了,在每行输出好后,来个换行;//可以试着去掉,就明显不换行咯;
}

void main()
{
int n;

cout << "please input n:" << endl;
cin >> n;

pt(n);
}

这是刚给别人回答问题改的代码,输出正确的。
另外回答你的问题,//好多变量都是在要使用时才突然来个声明;这样好嘛?
C++支持声明不用放在最前面,而C就规定声明一定要放最前面。使用才声明变量,可以更直观,如果是比较长的代码,使用的变量如果在最前面声明,找起来比较麻烦,使用才声明容易知道变量声明的目的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QQ469985793
2012-02-25 · TA获得超过153个赞
知道答主
回答量:126
采纳率:100%
帮助的人:101万
展开全部
//杨辉三角;

#include <iostream>
using namespace std;

int main()
{
int a,i,j;

cout<<"please input a:";
cin>>a;
if(cin.fail()) // 如果输入不是数字
return 0; // 释放内存

for(i=1;i<=a;i++){ // 外层循环 循环三角层数
int m = 1; //嵌套定义 这样的习惯不是很好 ,不建议
for(j = 1;j <= i;j ++){//内层循环 循环每层数字
//while(m<=i){
cout<<m;
m++;
}

int n = i-1;
while(n) //这里是输出 三角
{
cout<<n--;
}
cout<<endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式