gpt4 book ai didi

c - 为什么参数类型不正确(应该是 int * 的时候是 int)?

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:21 24 4
gpt4 key购买 nike

我正在用 C 编写一个程序,它扫描值并按“团队 1 值 1、团队 2 值 1、团队 1 值 2、团队 2 值 2”等顺序打印出值。我在 'printf("Team 1 weights: %i\n", team1);' 行中不断收到错误消息消息“格式指定了 int 类型,但参数的类型为‘int *’,我不知道为什么。我认为这可能与数组有关。如果有任何帮助,我将不胜感激!

#include <stdio.h>
#include <math.h>

int main() {

printf("How many members of each team are there?\n");

int team1 [] = {110, 113, 112, 117};
int team2 [] = {106, 102, 121, 111};

scanf("%i", &team1[4]);
printf("How much do the players of team 1 weigh?\n");
scanf("%i", &team1[4]);

printf("Team 1 weighs: %i\n", team1);

return 0;
}
}

我希望输出打印我在请求用户输入时输入的值,例如“1队队员的体重是多少?”我的答案是:43、25、64、35。打印“第 1 队的重量:43、25、64、35”。

最佳答案

team1 不是 int,它是一个大小为 4int 数组。将数组“衰减” 传递给函数时指向指针,这就解释了为什么您会看到该错误消息。

您需要单独打印所有元素,例如使用 for 循环。


您的 scanf 调用也不正确 - 您正在读取 team1 数组边界之外的单个元素,这是未定义的行为。您需要使用循环扫描每个元素。

关于c - 为什么参数类型不正确(应该是 int * 的时候是 int)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55830039/

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