首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Format指定类型"int*“,但参数的类型为"int”

Format指定类型"int*“,但参数的类型为"int”
EN

Stack Overflow用户
提问于 2014-08-30 03:27:49
回答 4查看 47K关注 0票数 6

创建一个打印身体质量指数的代码

代码语言:javascript
复制
printf("What is your height in inches?\n");
scanf("%d", height);

printf("What is your weight in pounds?\n");
scanf("%d", weight);

我有初始化为int heightint weight的身高和体重,但是程序不让我运行它,因为它说在两个scanf行上格式都是int*类型。为了让这个程序运行,我做错了什么?

EN

回答 4

Stack Overflow用户

发布于 2014-08-30 03:33:54

scanf需要格式(您的"%d")和变量的内存地址,该变量应该将所读取的值放入其中。heightweightint,而不是int的内存地址(这是int *类型所说的:指向int内存地址的指针)。您应该使用运算符&将内存地址传递给scanf

你的代码应该是:

代码语言:javascript
复制
printf("What is your height in inches?\n");
scanf("%d", &height);

printf("What is your weight in pounds?\n");
scanf("%d", &weight);

更新:正如顺磁翻译器指出的那样,引用不是正确的term.So,我将其更改为内存地址。

票数 12
EN

Stack Overflow用户

发布于 2014-08-30 13:19:10

考虑到其他用户已经说过的话,尝试这样做;

代码语言:javascript
复制
int height;                  <---- declaring your variables
int weight;
float bmi;                   <---- bmi is a float because it has decimal values

printf("What is your height in inches?\n");
scanf("%d", &height);           <----- don't forget to have '&' before variable you are storing the value in

printf("What is your weight in pounds?\n");
scanf("%d", &weight);


bmi = (weight / pow(height, 2)) * 703;    <---- the math for calculating BMI
printf("The BMI is %f\n", bmi);

(为此,您需要包含math.h库。)

票数 1
EN

Stack Overflow用户

发布于 2014-08-30 03:46:02

scanf从标准输入中读取字符,根据这里的整数格式说明符"%d"解释它们,并将它们存储在相应的参数中。

要存储它们,您必须指定&variable_name,它将指定应该存储输入的地址位置。

您的scanf语句应为:

代码语言:javascript
复制
//For storing value of height
scanf(" %d", &height);
//For storing value of weight
scanf(" %d", &weight);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25574981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档