C 使用函数和数组

C 使用函数和数组,c,C,我下面的小程序将从用户那里获取5个数字,存储到 整数数组,并使用函数将其打印出来。诚然,它不起作用,而且 我的输出总是“00000”。我找不到错误,所以我很乐意接受任何建议。谢谢 #include <stdio.h> void printarray(int intarray[], int n) { int i; for(i = 0; i < n; i ++) { printf("%d", intarray[i]); } } i

我下面的小程序将从用户那里获取5个数字,存储到 整数数组,并使用函数将其打印出来。诚然,它不起作用,而且 我的输出总是“00000”。我找不到错误,所以我很乐意接受任何建议。谢谢

#include <stdio.h>

void printarray(int intarray[], int n)
{
    int i;
    for(i = 0; i < n; i ++)
    {
        printf("%d", intarray[i]);
    }
}

int main ()    
{
    const int n = 5;
    int temp = 0;
    int i;
    int intarray [n];
    char check;

    printf("Please type in your numbers!\n");

    for(i = 0; i < n; i ++)
    {
        printf("");
            scanf("&d", &temp);         
        intarray[i] = temp;


        getchar();
        getchar();

    }

    printf("Do you want to print them out? (yes/no): ");
        scanf("%c", &check);

        if (check == 'y')
            printarray(intarray, n);


    getchar();
    getchar();

    return 0;
}
#包括
void printary(int intarray[],int n)
{
int i;
对于(i=0;i
scanf()
格式字符串中,您需要的是
%d
,而不是
&d
。这个bug是一种很容易识别的bug,我建议您学习如何在开发系统的其他部分使用最有效的bug


在启用更多警告的情况下编译可能也会检测到此警告。类似于“格式的参数太多了”。

谢谢,但现在我有另一个问题。该功能不会打印出输入。所以现在连“00000”都不见了。@Ordo,程序的其余部分看起来不错。我在这里对它进行了测试,结果看起来不错(因为我不在windows机器上,所以我不得不在每组加倍的
getchar()
调用中取出一个)。您是否尝试设置调试器?MS Visual Studio中包含一个调试器,但它没有显示任何问题。我将尝试另一个调试器。@或者在MSV中的逐步调试会话中查看自动变量和局部变量,您将很快看到错误所在。@Soulseekah:OP的代码使用可变长度数组,该数组是C99引入的,需要C99编译器进行翻译。C89要求使用常量表达式指定数组长度(即,可以在编译时计算的内容)。