C 使用函数和数组
我下面的小程序将从用户那里获取5个数字,存储到 整数数组,并使用函数将其打印出来。诚然,它不起作用,而且 我的输出总是“00000”。我找不到错误,所以我很乐意接受任何建议。谢谢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
#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要求使用常量表达式指定数组长度(即,可以在编译时计算的内容)。