0

我正在尝试在数组中插入所有加泰罗尼亚语数字,但我的代码不起作用。

  • 描述:将加泰罗尼亚语序列中的元素插入仅针对 C[0] 初始化的给定数组中。
  • 输入:数组的地址
    • n:下一个要填补的位置;
    • top:要计算的最大条目数。
  • 输出:
    • int:数组中的元素个数。
    • 副作用:更新数组的元素。

代码:

#include <stdio.h> 

#define MAX 6
int CatSeq (int CatArray[], int n, int top){
    int c;
    if (top == 1) CatArray[n]= 1; 
    else{ 
        for ( c = 0; c <= MAX; c++){
            CatArray[n] = 2 * (2*top - 1) * CatSeq(CatArray, n, top-1) / (top+1);
            n++;
        }
    }
    return n;
}
void PrintSeq(int Seq[], int top){
    int i; 
    for ( i = 1; i < MAX; i++)  
        printf("%d \n", Seq[i]);
}
int main(){
    int c = 0, n = 0 ;
    int CatArray[MAX];
    c = CatSeq(CatArray, n, MAX);
    PrintSeq(CatArray, c);
    return 0;
}
4

1 回答 1

1

数组超出索引错误:

for ( c = 0 ; c <= MAX;c++){
                ^
                check loop

正确的是:

for ( n = 0 ; n < MAX; n++){

它应该是n < MAX,因为 n 可以作为非零传递给函数。

CatArray[n] = 2 * (2*top - 1) * CatSeq(CatArray, n, top-1) / (top+1);
                                                 ^
                                                here n is non-zero 

不需要c变量。

于 2013-07-31T14:13:45.263 回答