void Pascal(int n){
int i,j;
int a[100], b[100];
a[0]= 1;
for(i = 0; i <= n; i++){
printf(" ");
b[i]=1;
for(j = 0; j <= i; j++){
if (j <= 1) a[j-1]=0;
b[j] = a[j-1] + a[j];
printf("%d", b[j]);
}
for (j = 0; j <= i; j++){
a[j] = b[j];
}
printf("%d \n");
}
}
这是我一直在努力建立的功能;请告诉我它有什么问题?
答案 0 :(得分:1)
在第11行中,您使用-1作为索引。先检查一下。 检查代码 -
void Pascal(int n){
int i,j;
int a[100]={0}, b[100]={0};
a[1]= 1;
for (i = 1; i <= n; i++){
printf(" ");
b[i]=1;
for (j = 1; j <= i; j++){
if (j <= 1) a[j-1]=0;
b[j] = a[j-1] + a[j];
printf("%d ", b[j]);
}
for (j = 1; j <= i; j++){
a[j] = b[j];
}
printf("\n");
}
}
我已经从1开始编制索引。
答案 1 :(得分:0)
我做了一个类似的程序:
#include <stdio.h>
int nk (int n, int k)
{
int erg = 0;
erg = fak(n)/(fak(k)*fak(n-k));
return (erg);
}
int fak (int n)
{
if (n==0)
return 1;
if (n==1)
return 1;
else
return n = n*fak(n-1);
}
int main ()
{
int n = 0;
int k = 0;
int s = 0;
int i = 0;
int a = 0;
printf ("How many rows: ");
scanf ("%d", &a);
s = (a-1);
printf ("\nPascal'sches Dreieck\n");
for (n = 0; n <= (a-1); n++)
{
for (i=0; i<=s; i++)
printf(" ");
for (k=0; k<=n; k++ )
{
if (nk(n,k)<=10)
printf (" %d ", nk(n,k));
else
printf (" %d", nk(n,k));
}
s--;
printf ("\n");
}
getch();
return 0;
}
答案 2 :(得分:0)
请告诉我它有什么问题?
从我的角度来看,从大局来看,它的错误在于你在每次迭代时都将数组ngOnDestroy
的内容复制到数组b
中:
a
这正是指针允许我们避免的那种不必要的内存改组!所以让我们解决这个问题,当我们处理它时,修复代码中的所有其他小错误:
for (j = 0; j <= i; j++) {
a[j] = b[j];
}
答案 3 :(得分:0)
试试这段代码!
我还附上了输出的截图。
/ ********************************************** *********
Online C Compiler.
Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <stdio.h>
void Pascal(int n);
int main()
{
int rows, coef = 1, space;
printf("Enter number of rows: ");
scanf("%d",&rows);
Pascal(rows);
return 0;
}
void Pascal(int rows)
{
int coef = 1, space;
for(int i=0; i<rows; i++)
{
for(space=1; space <= rows-i; space++)
printf(" ");
for(int j=0; j <= i; j++)
{
if (j==0 || i==0)
coef = 1;
else
coef = coef*(i-j+1)/j;
printf("%4d", coef);
}
printf("\n");
}
}