C ';a';未声明(此函数首次使用)错误

C ';a';未声明(此函数首次使用)错误,c,arrays,loops,C,Arrays,Loops,我是编程新手,我想创建一个程序,可以打印出pi的前n位,其中n由用户指定。这个问题的原因可能是什么 #include <stdio.h> #define MAX_DIGITS 10 int main(void) { int pi[MAX_DIGITS] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; printf("How many digits of pi would you like to print? ");

我是编程新手,我想创建一个程序,可以打印出pi的前n位,其中n由用户指定。这个问题的原因可能是什么

#include <stdio.h>

#define MAX_DIGITS 10

int main(void) {
    int pi[MAX_DIGITS] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
    printf("How many digits of pi would you like to print? ");
    int digits;
    scanf("%d", &digits);
    int i = 0;
    while (i < digits) {
        printf("%d", array[i]);
        if (i == 0){
            printf(".");
        }
        i++;
    }
    printf("\n");
  
    return 0;
}
#包括
#定义最多10位数字
内部主(空){
int-pi[MAX_DIGITS]={3,1,4,1,5,9,2,6,5,3};
printf(“您希望打印多少位pi?”);
整数位数;
scanf(“%d”,和数字);
int i=0;
while(i<位数){
printf(“%d”,数组[i]);
如果(i==0){
printf(“.”);
}
i++;
}
printf(“\n”);
返回0;
}

不确定要做什么,但 没有声明数组[i]。这就是你想做的吗

#include <stdio.h>

#define MAX_DIGITS 10

int main(void) {
    int pi[MAX_DIGITS] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
    printf("How many digits of pi would you like to print? ");
    int digits;
    scanf("%d", &digits);
    int i = 0;
    while (i < digits) {
        printf("%d", pi[i]);
        if (i == 0){
            printf(".");
        }
        i++;
    }
    printf("\n");
  
    return 0;
}
#包括
#定义最多10位数字
内部主(空){
int-pi[MAX_DIGITS]={3,1,4,1,5,9,2,6,5,3};
printf(“您希望打印多少位pi?”);
整数位数;
scanf(“%d”,和数字);
int i=0;
while(i<位数){
printf(“%d”,pi[i]);
如果(i==0){
printf(“.”);
}
i++;
}
printf(“\n”);
返回0;
}

此外,您还应该检查数字是否不超过MAX_digits

while循环中的这段代码就是问题所在

   printf("%d", array[i]);
您的数组称为pi,而这里有“array”,所以只需将其重命名为pi,它就可以正常工作了

它应该是i==0,与zywy的答案相反。不过,您可能希望使条件
i==0&&digits>1
,以便在请求一位pi时不打印小数点

另一方面,我不认为使用数组来存储所需的pi数字是个好主意,除非您对用户可以输入的n的潜在值有特定限制。考虑使用以下公式计算π:

的位数

错误消息准确地说明了问题所在。您的
printf
谈到了
array[i]
,但是没有所谓的
array
。错误和代码似乎不一致,因为没有使用“a”标识符)。在任何情况下,都没有显示“array”变量..我不理解这个问题。你能不能更具体一点,比如把你的编译器输出/错误粘贴在这里?