首页 新闻 会员 周边 捐助

之前学的C,现在学C#有点不上手。大家帮我看看这个这个求杨辉三角的代码。为什么跳出来一个: 其他信息: 未

0
悬赏园豆:10 [已解决问题] 解决于 2016-10-25 08:26

int n;
Console.WriteLine("请输入杨辉三角的行数:\nn=");
n=int.Parse(Console.ReadLine());
int [][] s=new int [n][];
int i, j;
for (i = 1; i <=n; i++)
{
s[i][0] = 1;
s[i][i] = 1;
for(j=1;j>2;j++)
{
s[i][j] = s[i - 1][j - 1] + s[i - 1][j];
if (j <= 2)
{
break;
}
}
if (i > n)
{
break;
}
Console.WriteLine(s);

}
Console.ReadLine();

一场空的主页 一场空 | 初学一级 | 园豆:49
提问于:2016-10-20 13:50
< >
分享
最佳答案
0

s[i] 也是个一维数组,要使用new int[]初始化。Console.WriteLine(s);数组不能这样输出的。

收获园豆:10
授之以渔 | 小虾三级 |园豆:1112 | 2016-10-20 14:28

你能说一下我这个程序具体应该怎么改么

一场空 | 园豆:49 (初学一级) | 2016-10-20 15:24

@一场空: 

int n;
Console.WriteLine("请输入杨辉三角的行数:\nn=");
n = int.Parse(Console.ReadLine());
int[][] s = new int[n][];
int i, j;
for (i = 0; i < n; i++)
{
s[i] = new int[i+1];
s[i][0] = 1;
s[i][i] = 1;
for (j=1; j<i; j++)
{
s[i][j] = s[i - 1][j - 1] + s[i - 1][j];
}
for(int k=0;k<i+1;k++)
Console.Write(s[i][k]+" ");
Console.WriteLine("");
}
Console.ReadLine();

授之以渔 | 园豆:1112 (小虾三级) | 2016-10-20 15:26

@授之以渔: 

谢谢你,我刚刚接触C#,不是很了解。你能解释一下你加的这两行代码是什么意思么?

s[i] = new int[i + 1];

for (int k = 0; k < i + 1; k++)
Console.Write(s[i][k] + " ");

一场空 | 园豆:49 (初学一级) | 2016-10-20 15:29

@一场空: s 的声明是一个二维数组的结构

叶帅辉 | 园豆:277 (菜鸟二级) | 2016-10-20 16:40
其他回答(1)
0

new int [n][];二维数组是个矩形.

你这个只有一个n下面又直接给第二微赋值.肯定不行啊.你至少要

s[i]=new int[100],这个样子.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-20 14:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册