很cool的阳 发表于 2024-12-12 15:53:23

c语言第八次作业求助

代码如下目前运行不了
include<stdio.h>

int main()
{
        char name;
        float height,weight;
       
        printf("请输入您的姓名:");
        scanf("%s",name);
       
        printf("请输入您的身高(cm):");
    scanf("%f", &height);

    printf("请输入您的体重(kg):");
    scanf("%f", &weight);
       
        height = height / 2.54;
    weight = weight / 0.453;
   
        printf("========== 正在为您转换 ==========\n");
       
       printf("%s的身高是%.2f(in),体重是%.2f(lb)。\n", name, height, weight);
   

        return 0;
}       

FishC 发表于 2024-12-12 15:53:34

你好!你的代码有几个问题需要修正,以下是修改后的代码和相应解释:

#include <stdio.h> // 正确包含头文件

int main()
{
    char name; // 将name定义为字符数组,以存储多个字符
    float height, weight;
   
    printf("请输入您的姓名:");
    scanf("%s", name); // name不需要加&,因为它本质上是一个地址
   
    printf("请输入您的身高(cm):");
    scanf("%f", &height);

    printf("请输入您的体重(kg):");
    scanf("%f", &weight);
   
    height = height / 2.54;
    weight = weight / 0.453;
   
    printf("========== 正在为您转换 ==========\n");
   
    printf("%s的身高是%.2f(in),体重是%.2f(lb)。\n", name, height, weight);
   
    return 0;
}

**修改说明:**
1. **包含头文件**:`#include <stdio.h>`加上尖括号,确保引入标准输入输出库。
2. **正确声明字符数组**:用`char name;`来声明一个可以储存字符串的字符数组,而不是单个字符。
3. **使用scanf读取字符串**:`scanf("%s", name);`中不需要`&`因为数组名代表数组的地址。
4. **其余代码未作改动**。转换公式和格式化输出已经没问题。

请尝试运行修正后的代码,如果还有问题请继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: c语言第八次作业求助