gpt4 book ai didi

c - scanf 运行时错误

转载 作者:行者123 更新时间:2023-12-04 11:09:12 24 4
gpt4 key购买 nike

我是编程新手。我试图实现一个示例程序,但它给了我一个运行时错误。但是 height 属性是一个 float 类型。

format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double’

#include<stdio.h>
#include<string.h>

struct user
{
char name[30];
float height;
/*float weight;
int age;
char hand[9];
char position[10];
char expectation[10];*/
};

struct user get_user_data()
{
struct user u;
printf("\nEnter your name: ");
scanf("%c", u.name);

printf("\nEnter your height: ");
scanf("%f", u.height);

return u;

};
int height_ratings(struct user u)
{
int heightrt = 0;

if (u.height > 70)
{
heightrt =70/10;

}
return heightrt;
};

int main(int argc, char* argv[])
{

struct user user1 = get_user_data();

int heighRate = height_ratings(user1);

printf("your height is ", heighRate);

return 0;

}

最佳答案

您的 scanf() 调用存在格式不匹配问题:

  1. scanf("%c", u.name); 应该是 scanf("%s", u.name);

%s 用于扫描 string%c 用于扫描 char

  1. scanf("%f", u.height); 应该是 scanf("%f", &u.height);

注意添加的&。您需要传递 float 变量的地址。

关于c - scanf 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30822366/

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