gpt4 book ai didi

c - 填充整数数组与填充 float 组相同吗?

转载 作者:太空狗 更新时间:2023-10-29 15:28:19 27 4
gpt4 key购买 nike

我刚开始接触 C,我被指派编写一个程序来模拟杂货店的自助结账线。这涉及到我必须根据用户输入用杂货商品的价格填充一个数组,然后将它们相加并将它们复制到一个文件中。

填充整数数组的最简单方法是使用 for 循环。但是对于 float 类型的数组会有不同吗?

它看起来像这样吗?或者这是不正确的?

int size, i;
float items[size];
printf("How many items are you checking out today?");
scanf("%d", &size);
for(i=0;i<size;i++){
printf("Enter the price of an item\n");
scanf("%f", items[i]);
}

我是这个网站的新手所以在此先感谢

最佳答案

我建议在声明变量时始终初始化变量,以防止意外出现“垃圾”值。另外,我真的不建议预先声明你的循环计数器。你在很多旧代码中看到它(由于编译器的限制,它曾经是必需的),但现在我只是认为它是代码噪音。它看起来像这样:

for (int i = 0; i < size; i++) {
// stuff
}

还有,你的代码有大问题。您正在使用所谓的可变大小数组,它们是 not a good idea .您通常希望在编译时声明数组大小,或者使用 malloc 为数组动态分配空间。

不过,回到初始化,这就是你如何在声明时设置堆栈分配数组中的每个元素:

#define SIZE 4

int main(void)
{
float items[SIZE] = { 0 };
}

如果动态分配数组,出于同样的原因,我建议使用callocmemset 将数组元素设置为默认值。

要回答您关于填充数组的问题,是的,您实际执行此操作的方式没有区别。在这两种情况下,for 循环都可以正常工作。请记住检查 scanf 的返回值。

关于c - 填充整数数组与填充 float 组相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167324/

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