gpt4 book ai didi

c - 如何允许用户输入具有指定初始大小的数组的值?

转载 作者:行者123 更新时间:2023-11-30 16:19:02 24 4
gpt4 key购买 nike

我希望能够向此代码的用户询问数组的四个值。我有一些代码,但它打印了一个我似乎无法解决的错误。我正在尝试按照本视频教程中的示例对我的一些代码进行建模:https://youtu.be/IPYA3b3_nyk?list=PL6gx4Cwl9DGAKIXv8Yr6nhGJ9Vlcjyymq但是,我似乎无法让它无错误地编译。

错误如下: 在函数“main”中: intitializeint.c:12:9:警告:格式“%d”需要“int”类型的参数,但参数 2 的类型为“int *”[-Wformat=] printf("输入值%d。\n", &i+`); ^

我尝试对每个提示使用 printf() 和 scanf() 来输入值,但发现本教程并尝试模仿它。我尝试重新排列“&i+1”,但它只是返回相同的错误。我想要一个增量,以便在输出中显示数组从 1 开始。

 #include <stdio.h>
#include <stddef.h>

void printArray(int n[]);

int main(void)
{
int i;
int n[4];

for (i = 0; i < 5; ++i) {
printf("Enter value %d. \n", &i+1);
scanf("%d", &n[i]);
}

printf("%s%13s\n", "Element", "Value");
printArray(n);

return 0;
}

void printArray(int n[])
{
int i;
for (size_t i = 0; i < 4; ++i) {
printf("%7zu%13d\n", i, n[i]);
}
}

最佳答案

当您编写&i时,您不小心创建了一个指向i的指针。您的指针将具有 int * 类型,因为它是指向 int 的指针。 %d 格式说明符需要一个 int,而不是指向 int 的指针,因此这就是编译器给出该错误的原因。 (您应该重新阅读该错误,并确保其中的每一个字现在对您来说都完全有意义。)

解决方案是删除错误的 & 运算符:

printf("Enter value %d.\n", i + 1);

关于c - 如何允许用户输入具有指定初始大小的数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55737063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com