请问我的程序哪里错了,一直没找出来了

#include <stdio.h>

int main()
{
char name;
float TZ,SG; //体重TZ,身高SG

printf("姓名:");
scanf("%s",&name);

printf("身高:");
scanf("%.2f",&SG);

printf("体重:");
scanf("%.2f",&TZ);

printf("转换中。。。。。。\n");

SG = SG / 2.54;      //身高单位由厘米转换为英寸
TZ = TZ / 0.453;      //体重单位由公斤转换为磅

printf("%s的身高为%.2f英寸,体重为%.2f磅。"\

,name,SG,TZ);

return 0;

}

img

第三个scanf函数不执行

输入多个字符 name 要改成字符数组;
char name[50];
scanf中是"%f", 不能加 .2

#include <stdio.h>

int main()
{
    char name[50];  //输入多个字符 name 要改成字符数组;
    float TZ, SG; //体重TZ,身高SG

    printf("姓名:");
    scanf("%s", name); //数组不要加&

    printf("身高:");
    scanf("%f", &SG); //scanf中是"%f", 不能加 .2 

    printf("体重:");
    scanf("%f", &TZ);  //scanf中是"%f", 不能加 .2 


    printf("转换中。。。。。。\n");

    SG = SG / 2.54;  //身高单位由厘米转换为英寸
    TZ = TZ / 0.453; //体重单位由公斤转换为磅

    printf("%s的身高为%.2f英寸,体重为%.2f磅。", name, SG, TZ);

    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

scanf("%.2f",&TZ)
改为
scanf("%f",&TZ);
================
scanf中写%f就可以了,不要加控制信息。这是输出的时候用来指定输出格式的。

#include <stdio.h>

int main()
{
char name[20];
float TZ,SG; //体重TZ,身高SG

printf("姓名:");
scanf("%s",&name);
 
printf("身高:");
scanf("%f",&SG);
 
printf("体重:");
scanf("%f",&TZ);
 
printf("转换中。。。。。。\n");
 
SG = SG / 2.54;      //身高单位由厘米转换为英寸
TZ = TZ / 0.453;      //体重单位由公斤转换为磅
 
printf("%s的身高为%.2f英寸,体重为%.2f磅。",name,SG,TZ);

return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632